Je dois récupérer l'emplacement d'un utilisateur dans un fichier WebView
. Je fais cela avec le Javascript suivant:
function getLocation() {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
Mais la fenêtre contextuelle de demande d'autorisation ne s'ouvre jamais.
J'ai défini ces paramètres:
ws.setJavaScriptEnabled(true);
ws.setGeolocationEnabled(true);
ws.setJavaScriptCanOpenWindowsAutomatically(true);
Quelle est la bonne façon d'accéder à l'emplacement d'un utilisateur à partir d'un WebView
?
android.webkit.WebChromeClient()
au lieu de justeWebChromeClient()
etandroid.webkit.GeolocationPermissions.Callback
pour que cela fonctionne.Déclarez-vous cette autorisation dans votre manifeste?
Vous devrez peut-être également déclarer d'autres autorisations de localisation, comme celles-ci:
la source
La boîte de dialogue pour accepter ou refuser l'emplacement de l'utilisateur est conçue par le programmeur: D. Comme Chris Cashwell l'a dit, vous utilisez simplement un rappel comme celui-ci:
Dans certains cas, HTML5 nécessite d'utiliser le stockage, vous devez activer certaines propriétés pour que la vue Web dispose d'un accès complet pour s'exécuter normalement.
la source
Partageant ma classe d'activité de travail, c'est une solution complète qui peut démontrer
J'espère que ça fait gagner du temps à quelqu'un
la source
Voici un exemple d'affichage de la boîte de dialogue d'alerte pour promouvoir l'autorisation de l'utilisateur à utiliser sa position:
la source
J'ai récemment rencontré ce type de situation et j'ai suivi les étapes ci-dessous pour y parvenir:
Étape 1: ajoutez des autorisations dans votre
AndroidManifest.xml
fichierÉtape 2: Créez une activité qui contiendrait un
WebView
etProgressBar
(dans mon cas)Étape 3: Dans votre classe d'activité, ajoutez le code ci-dessous et apportez des modifications en fonction de vos besoins
la source