<android>webview 嵌套vue项目 采用高德地图地理位置权限获取onGeolocationPermissionsShowPrompt方法不回调
webview 嵌套vue项目 采用高德地图地理位置权限获取onGeolocationPermissionsShowPrompt方法不回调最近嵌套vue项目时,vue里面接的高德地图,用户运动时需要获取本地的位置权限,但是总是获取不到,vue自然也不会有定位信息,我是这样解决的:String dir = getActivity().getApplicationConte...
·
webview 嵌套vue项目 采用高德地图地理位置权限获取onGeolocationPermissionsShowPrompt方法不回调
最近嵌套vue项目时,vue里面接的高德地图,用户运动时需要获取本地的位置权限,但是总是获取不到,vue自然也不会有定位信息,我是这样解决的:
String dir = getActivity().getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
webSettings.setGeolocationEnabled(true);
webSettings.setGeolocationDatabasePath(dir);
开启后 mWebView.setWebChromeClient();再setWebChromeClient的入参的类中重写
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
Log.e("", "获取地理权限");
callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
ActivityCompat.requestPermissions(getActivity(), new String[]{
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
}, 100);
}
这样的话基本就差不多了,但是发现还是走不到这个方法,于是网络各种查阅资料,查了整整一个晚上,终于在一个博客上看到,如果是androidstudio的话,高德规定需要把targetSdkVersion置为得23,我改完之后,发现果然是这样。在onGeolocationPermissionsShowPrompt方法里拿到了回调信息,功夫不负有心人啊,特此一记,谨记在心!
更多推荐
已为社区贡献1条内容
所有评论(0)