002 WebView页面不支持浏览器定位解决

问题描述:

在uc等浏览器访问地址可以正常定位,但是在webView里面访问不能定位,显示:不支持浏览器定位,权限拒绝,但是该app已经具有定位权限了.

原因:

最大目标系统版本达到6.0 (API level > M)时,在请求不是https等安全来源的时候自动拒绝获取地理位置信息,而不调用重载的onGeolocationPermissionsShowPrompt( )方法.

解决:

(1) Android Studio中到File->Project Structure里面的Flavors项把最高版本调为5.0的就好了。
002 WebView页面不支持浏览器定位解决_第1张图片
image.png
(2)代码
WebSettings settings = mWebView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        //定位
        settings.setDatabaseEnabled(true);
        String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
        settings.setGeolocationEnabled(true);
        //路径
        settings.setGeolocationDatabasePath(dir);
        settings.setDomStorageEnabled(true);

        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
                callback.invoke(origin, true, false);
                super.onGeolocationPermissionsShowPrompt(origin, callback);
            }

        });
(3)权限
//定位权限
    
    
    

你可能感兴趣的:(002 WebView页面不支持浏览器定位解决)