关于android webview里HTML5的地理位置定位,在别的浏览器中打开可以定位,在我自己的webview却不能

自己做了一个小app,就是把webwiew,嵌进来,又加了点别的功能,安装打开后,定向访问一个网站,其他的(如:js)等都正常,就是在一个百度地图的页面中无法定位,在UC和自带的浏览器中都可以,为什么呢,要设置什么参数还是要写什么方法吗?

我也遇到了同样的问题,我查看了下源码解决了,主要代码如下:
//启用数据库
webSettings.setDatabaseEnabled(true);
String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();

//启用地理定位
webSettings.setGeolocationEnabled(true);
//设置定位的数据库路径
webSettings.setGeolocationDatabasePath(dir);

//最重要的方法,一定要设置,这就是出不来的主要原因

webSettings.setDomStorageEnabled(true)

//配置权限(同样在WebChromeClient中实现)
public void onGeolocationPermissionsShowPrompt(String origin,
GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
配置权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-09

参考实现:网页链接

第2个回答  2013-02-26
到底是不同的浏览器还是不同的页面?追问

就是把webview加到这个app中,定向访问一个站点,其中的一个页面,有百度地图,无法定位。而用UC等浏览器访问这个站点的时候,这个页面是可以定位的

追答

webview按理说调用的就是设备内置浏览器,如果不能获取position是不是设备的内置浏览器不支持呢?不过webkit应该是支持的啊,这个没遇到过,看看是不是权限问题。

追问

现在已经有了一个wap站点,用系统自带浏览器访问是可以定位的,说明webkit没有问题,问题是嵌到app中的webview无法定位,在AndroidManifest.xml也加了网络和GPS定位的权限,所以我想,是不是要自己写什么方法手动的调用定位功能呢,该怎么写?

相似回答