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 无法打开天猫页面)
webSettings.setDomStorageEnabled(true);  
private class MyWebChromeClient extends WebChromeClient  
{  
    @Override  
    public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback)  
    {  
        callback.invoke(origin, true, false);  
        super.onGeolocationPermissionsShowPrompt(origin, callback);  
    }  
} 

后面的参考已经不仅仅是说在H5中定位,有兴趣自己了解,
参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值