首页 > 解决方案 > Android WebView navigator.getCurrentPosition 问题

问题描述

尝试在具有代码的 webview 中加载 JS 页面:navigator.getCurrentPosition

a) 对于 android 应用程序的 chrome 浏览器中的相同代码,我看到一个弹出窗口

在此处输入图像描述

如果用户允许,从设置中自动打开位置。但是在 webview 中加载 JS 页面时,没有看到打开位置的弹出窗口。

已经给出:

 webview.setWebChromeClient(new WebChromeClient() {
            public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
                // callback.invoke(String origin, boolean allow, boolean remember);
                callback.invoke(origin, true, true);
            }
}

标签: androidwebviewgeolocation

解决方案


我已经找到了问题的答案,就在这里。

基本上,对于 Google chrome 移动应用程序,位置设置选项通过拦截 onGeolocationPermissionsShowPrompt 显示给用户。

确保位置设置成功时传递的回调是 callback.invoke(origin, true, false); 失败是 callback.invoke(origin, false, false);

https://developer.android.com/training/location/change-location-settings中提到的所有样板都写在回调 onGeolocationPermissionsShowPrompt 本身中。

我注意到这甚至没有被其他浏览器应用程序(如 Firefox)完成。


推荐阅读