Android关于WebView中无法定位的问题解决
程序员文章站
2023-11-16 16:13:22
之前碰到个问题,使用webview的时候无法定位,最近19大没法墙,只能去百度逛逛,发现有人说要这么做
websettings settings = wb...
之前碰到个问题,使用webview的时候无法定位,最近19大没法墙,只能去百度逛逛,发现有人说要这么做
websettings settings = wbcontent.getsettings(); settings.setjavascriptenabled(true); settings.setjavascriptcanopenwindowsautomatically(true); settings.setgeolocationenabled(true); settings.setdomstorageenabled(true); settings.setdatabaseenabled(true); string dir = this.getapplicationcontext().getdir("database", context.mode_private).getpath(); settings.setgeolocationdatabasepath(dir); webchromeclient = new webchromeclient(){ @override public void ongeolocationpermissionsshowprompt(string origin, geolocationpermissions.callback callback) { callback.invoke(origin, true, true); super.ongeolocationpermissionsshowprompt(origin, callback); } }; wbcontent.setwebchromeclient(webchromeclient); wbcontent.loadurl("https://xxxxxxxxxxxxxxxxxxxxxxxx");
网上很多地方说加了这段代码之后就可以正常定位了,然而我加上之后还是没有什么卵用。没办法,百度就是没谷歌给力。
看了下日志,说我没有获取到权限,但是代码中的callback.invoke(origin, true, true);是获取定位权限的操作啊。
我想了想,突然想到了6.0之后要动态申请权限。
我这样加入动态申请权限的代码
if (build.version.sdk_int >= 23) { int checkpermission = contextcompat.checkselfpermission(locationtestactivity.this, manifest.permission.access_coarse_location); if (checkpermission != packagemanager.permission_granted) { activitycompat.requestpermissions(locationtestactivity.this, new string[]{manifest.permission.access_coarse_location}, 1); activitycompat.requestpermissions(locationtestactivity.this, new string[]{manifest.permission.access_fine_location}, 1); }else { wbcontent.loadurl("https://xxxxxxxxxxxxxxxxxxxxxxxx"); } }
发现这样就能正常的获取到定位的结果,有的人可能不知道要在哪里动态申请,其实这要看你具体的流程,你也可以在跳转到这个页面的时候申请,也可以在展示网页的时候申请。
最后说一下,ongeolocationpermissionsshowprompt这个方法只会调用一次,和动态申请权限一样,只会在第一次调用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android关于WebView中无法定位的问题解决
-
Android中ImageView无法居中的问题解决方法
-
关于Vue-elementUI中,给input手动赋值之后无法修改的问题解决
-
关于找不到mss32.dll文件或无法定位的问题解决方法详细介绍
-
关于Vue-elementUI中,给input手动赋值之后无法修改的问题解决
-
关于找不到mss32.dll文件或无法定位的问题解决方法详细介绍
-
php中关于验证码无法显示的问题解决办法
-
Android中WebView的定位功能、视频全屏播放、下载功能、页面Url的处理、进度条处理
-
php中关于验证码无法显示的问题解决办法
-
MySQL中关于表数据文件损坏导致数据库无法启动的问题解决