webview navigator.geolocation 获取不到值
时间: 2023-12-14 09:02:35 浏览: 86
Android中WebView控件支持地理位置定位方法
如果你在使用WebView加载网页时发现无法获取到地理位置信息,有可能是因为WebView没有开启地理位置权限。你可以通过以下步骤来解决这个问题:
1. 在AndroidManifest.xml文件中添加以下权限:
```
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
```
2. 在Activity中添加以下代码:
```java
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setGeolocationEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
}
});
```
3. 确保HTML页面中的JavaScript代码正确调用了navigator.geolocation对象获取地理位置信息。
如果以上步骤无法解决问题,你可以尝试升级你的Android SDK版本或者使用第三方的地理位置获取库。
阅读全文