android 与H5交互之GPS定位

作者: NapleC | 来源:发表于2016-03-07 16:56 被阅读840次

    方法很简单 ,设置 WebSettings 和 WebChromeClient 就ok不过在这之前要先 配置权限(有两个地方):一个是清单文件中

    <uses-permission android::name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    

    一个是在 WebChromeClient 中实现的方法

    // 配置权限 
    private class MyWebChromeClient extends WebChromeClient { 
        @Override 
        public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { 
            callback.invoke(origin, true, false); 
            super.onGeolocationPermissionsShowPrompt(origin, callback); 
        }
    }
    

    然后是主要代码了:

    WebSettings webSettings = webView.getSettings();
    //启用数据库 
    webSettings.setDatabaseEnabled(true); 
    String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); 
    // 启用地理定位 
    webSettings.setGeolocationEnabled(true); 
    // 设置定位的数据库路径 webSettings.setGeolocationDatabasePath(dir); 
    // 最重要的方法,一定要设置,这就是出不来的主要原因 原因请看参考链接(Android WebView 无法打开天猫页面)
    // 配置权限 
    private class MyWebChromeClient extends WebChromeClient { 
        @Override 
        public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { 
            callback.invoke(origin, true, false); 
            super.onGeolocationPermissionsShowPrompt(origin, callback); 
        }
    }
    

    后面的参考已经不仅仅是说在H5中定位,有兴趣自己了解,参考:
    -Android WebView 无法打开天猫页面;
    -Web_Storage_API;
    -StakeOverflow: What does "enable DOM storage API"mean?
    -Dive into HTML5: LOCAL STORAGE
    -HTML5之Web Storage(本地存储)详解

    相关文章

      网友评论

        本文标题:android 与H5交互之GPS定位

        本文链接:https://www.haomeiwen.com/subject/eaaakttx.html