webview 加载 html 获取gps定位 权限配置

背景:

Android端 webview 加载链接,html获取gps定位,一直返回用户拒绝定位请求权限;需要通过如下配置

1、Android 端

清单文件

<!-- 网络权限,加载网络网页需要联网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 粗略定位权限,允许一个程序通过网络获取粗略的位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 精确定位权限,允许一个程序访问精确位置(GPS定位) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

添加应用的权限请求

private void checkPermission() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (MainActivity.this.checkSelfPermission(permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
                    MainActivity.this.checkSelfPermission(permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{permission.ACCESS_FINE_LOCATION,permission.ACCESS_COARSE_LOCATION}, 100);
            } else {
                initLocation();
            }
        } else {
            initLocation();
        }
    }

webview(注意“// ------添加如下的配置--------”)

WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setDomStorageEnabled(true);//开启DOM
        //----------添加如下-----------
        settings.setGeolocationEnabled(true); // 允许定位
        //设置定位的数据库路径
        String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
        settings.setGeolocationDatabasePath(dir);
        //-------------------------
        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

// 这个是监听js端的log,用来测试
        webView.setWebChromeClient(new WebChromeClient() {
            // ----------添加如下-----------
            @Override
            public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
                // //重写此方法,配置权限
                callback.invoke(origin, true, false);
                super.onGeolocationPermissionsShowPrompt(origin, callback);
            }
            // -------------------------------
        });
        webView.loadUrl(url);

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值