快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Android中WebView中无法定位怎么办

这篇文章主要介绍了Android中WebView中无法定位怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

成都创新互联主要从事成都网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务金东,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

实例如下

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中WebView中无法定位怎么办
分享地址:http://6mz.cn/article/pdoghp.html

其他资讯