android 与H5交互之GPS定位

方法很简单 ,设置 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(本地存储)详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WebView·开车指南 目录 WebView简介 WebView基本使用 WebView常用方法 WebSett...
    小庄bb阅读 8,879评论 3 25
  • Tips 由于WebView的用法实在太多,如果您只是想查询某个功能的使用——建议Ctrl+F(Commad+F)...
    BugDev阅读 12,312评论 11 109
  • 0. 前言 前面有被用户投诉 APP 流量消耗厉害: 于是乎考虑了流量方面的问题。暂时 APP 中涉及流量的几个方...
    zyl06阅读 24,390评论 5 63
  • 漫水填充的定义 漫水填充是一种用特定的颜色填充连通区域,通过设置可连通像素的上下限以及连通方式达到不同的填充效果的...
    傻傻小萝卜阅读 5,381评论 0 1
  • 今天去外婆家——自从外公脑筋糊涂只能留在家里照顾了以后,周末去外婆家成了我们的必修课。今天早晨,我陪外婆去菜场转了...
    兰舟酱阅读 5,042评论 3 23