Мне нужно получить местоположение пользователя в файле WebView
. Я делаю это с помощью следующего Javascript:
function getLocation() {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
Но всплывающее окно запроса разрешения никогда не открывается.
Я установил следующие настройки:
ws.setJavaScriptEnabled(true);
ws.setGeolocationEnabled(true);
ws.setJavaScriptCanOpenWindowsAutomatically(true);
Как правильно получить доступ к местоположению пользователя изнутри WebView
?
android.webkit.WebChromeClient()
а не простоWebChromeClient()
иandroid.webkit.GeolocationPermissions.Callback
заставить это работать.Вы объявляете это разрешение в своем манифесте?
Вам также может потребоваться объявить другие разрешения на местоположение, например:
источник
Диалог для принятия или отклонения местоположения пользователя разработан программистом: D. Как сказал Крис Кэшвелл, вы просто используете такой обратный вызов:
В некоторых случаях HTML5 требует использования хранилища, вы должны включить некоторые свойства, чтобы веб-просмотр имел полный доступ для нормальной работы.
источник
Разделяя мой класс рабочей деятельности, это полное решение, которое может продемонстрировать
Надеюсь, это сэкономит время
источник
Это пример отображения диалогового окна с предупреждением, чтобы продвигать разрешение пользователя на использование своего местоположения:
источник
Я недавно столкнулся с такой ситуацией и сделал следующие шаги для ее достижения:
Шаг 1. Добавьте разрешения в свой
AndroidManifest.xml
файлШаг 2. Создайте действие, которое будет содержать
WebView
иProgressBar
(в моем случае)Шаг 3. Добавьте в свой класс деятельности приведенный ниже код и внесите изменения в соответствии с вашими потребностями.
источник