Ich muss den Standort eines Benutzers in a abrufen WebView
. Ich mache das mit folgendem Javascript:
function getLocation() {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
Das Popup für die Berechtigungsanforderung wird jedoch nie geöffnet.
Ich habe folgende Einstellungen vorgenommen:
ws.setJavaScriptEnabled(true);
ws.setGeolocationEnabled(true);
ws.setJavaScriptCanOpenWindowsAutomatically(true);
Was ist der richtige Weg, um von a auf den Standort eines Benutzers zuzugreifen WebView
?
quelle
android.webkit.WebChromeClient()
anstatt nurWebChromeClient()
undandroid.webkit.GeolocationPermissions.Callback
diese Funktion zu erhalten.Erklären Sie diese Erlaubnis in Ihrem Manifest?
Möglicherweise müssen Sie auch andere Standortberechtigungen wie diese deklarieren:
quelle
Der Dialog zum Akzeptieren oder Ablehnen des Benutzerstandorts wird vom Programmierer entworfen: D. Wie Chris Cashwell sagte, verwenden Sie einfach einen Rückruf wie folgt:
In einigen Fällen muss für HTML5 Speicher verwendet werden. Sie müssen einige Eigenschaften aktivieren, damit die Webansicht vollen Zugriff hat, um normal ausgeführt zu werden.
quelle
Wenn Sie meine Arbeitsaktivitätsklasse teilen, ist dies eine vollständige Lösung, die dies demonstrieren kann
Hoffe, es spart jemandem Zeit
quelle
Dies ist ein Beispiel für das Anzeigen eines Warnungsdialogs, um die Berechtigung des Benutzers zur Verwendung seines Standorts zu fördern:
quelle
Ich bin kürzlich auf diese Art von Situation gestoßen und habe die folgenden Schritte unternommen, um dies zu erreichen:
Schritt 1: Fügen Sie Ihrer
AndroidManifest.xml
Datei Berechtigungen hinzuSchritt 2: Erstellen Sie eine Aktivität, die ein
WebView
undProgressBar
(in meinem Fall) enthalten würde.Schritt 3: Fügen Sie in Ihrer Aktivitätsklasse den folgenden Code hinzu und nehmen Sie die entsprechenden Änderungen vor
quelle