Tengo que recuperar la ubicación de un usuario en un archivo WebView
. Hago esto con el siguiente Javascript:
function getLocation() {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
Pero la ventana emergente de solicitud de permiso nunca se abre.
He establecido estas configuraciones:
ws.setJavaScriptEnabled(true);
ws.setGeolocationEnabled(true);
ws.setJavaScriptCanOpenWindowsAutomatically(true);
¿Cuál es la forma correcta de acceder a la ubicación de un usuario desde dentro de un WebView
?
fuente
android.webkit.WebChromeClient()
lugar de soloWebChromeClient()
yandroid.webkit.GeolocationPermissions.Callback
para que esto funcione.¿Está declarando ese permiso en su manifiesto?
También es posible que deba declarar otros permisos de ubicación, como estos:
fuente
El programador diseñó el cuadro de diálogo para aceptar o rechazar la ubicación del usuario: D. Como dijo Chris Cashwell, solo usa una devolución de llamada como esta:
En algunos casos, HTML5 requiere usar almacenamiento, debe habilitar algunas propiedades para que webview tenga acceso completo para funcionar normalmente.
fuente
Compartiendo mi clase de actividad laboral, esta es una solución completa que puede demostrar
Esperanza, le ahorra tiempo a alguien
fuente
Este es un ejemplo de mostrar un diálogo de alerta para promover el permiso del usuario para usar su ubicación:
fuente
Recientemente me encontré con este tipo de situación y he realizado los siguientes pasos para lograrlo:
Paso 1: agregue permisos en su
AndroidManifest.xml
archivoPaso 2: crea una actividad que contenga un
WebView
yProgressBar
(en mi caso)Paso 3: en su clase de actividad, agregue el código a continuación y realice los cambios de acuerdo con sus necesidades
fuente