【发布时间】:2016-12-01 12:18:51
【问题描述】:
我正在使用 WebView 加载带有地理位置请求的站点。 我在清单中添加权限,请求用户访问,启用 javascript。
来自 WebChromeClient 的方法“onGeolocationPermissionsShowPrompt”和“onPermissionRequest”没有在 Android Marshmallow 中调用,而在 KitKat 中一切正常。
我还添加了日志来检查它是如何工作的。
public void onGeolocationPermissionsShowPrompt(final String origin, final GeolocationPermissions.Callback callback) {
Log.e("Test", "Geolocation " + origin);
callback.invoke(origin, true, false);
}
public void onPermissionRequest(PermissionRequest request) {
Log.e("Test", "Request permission");
super.onPermissionRequest(request);
}
这是 webView 设置
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAllowContentAccess(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setGeolocationEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
webView.getSettings().setSupportMultipleWindows(false);
webView.getSettings().setSupportZoom(false);
和清单权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.vogella.android.locationapi.maps.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.vogella.android.locationapi.maps.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
感谢您的回答。
【问题讨论】:
标签: android webview geolocation