问题描述:
在Android WebView中使用navigator.geolocation API时,会抛出异常POSITION_UNAVAILABLE,导致无法获取地理位置信息。
解决方法:
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);
}
});
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
function successCallback(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
// 处理获取到的位置信息
}
function errorCallback(error) {
console.error(error);
}
以上步骤应该可以解决在Android WebView中使用navigator.geolocation API时抛出异常POSITION_UNAVAILABLE的问题。
上一篇:Android Webview:较小的显示尺寸破坏布局
下一篇:Android webview:抛出一些令牌错误。google.android.gms.某些内容加上webcookies无法正确缓存。