使用百度地图定位当前城市,在浏览器中可以,但是在安卓webview中定位失效

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010394015/article/details/52061804
使用百度地图,定位当前所在城市,发现在浏览器中,定位很快,但是把html页面放到webview中,就一直定位不到坐标
function getCurPosition() {
	var error_msg ;
	var geolocation = new BMap.Geolocation();
	var gc = new BMap.Geocoder();
	geolocation.getCurrentPosition(function(r) { // 定位结果对象会传递给r变量
		if (this.getStatus() == BMAP_STATUS_SUCCESS) { // 通过Geolocation类的getStatus()可以判断是否成功定位。
			var pt = r.point;
			gc.getLocation(pt, function(rs) {
				var addComp = rs.addressComponents;
				var address = addComp.city;
				alert(address);
			});
		} else {
			switch (this.getStatus()) {
			case 2:
				error_msg = '位置结果未知 获取位置失败.';
				break;
			case 3:
				error_msg = '导航结果未知 获取位置失败.';
				break;
			case 4:
				error_msg = '非法密钥 获取位置失败.';
				break;
			case 5:
				error_msg = '对不起,非法请求位置  获取位置失败.';
				break;
			case 6:
				error_msg = '对不起,当前 没有权限 获取位置失败.';
				break;
			case 7:
				error_msg = '对不起,服务不可用 获取位置失败.';
				break;
			case 8:
				error_msg = '对不起,请求超时 获取位置失败.';
				break;
			default:
				error_msg = '对不起,无法获取位置.';
				break;
			}
			layer.closeAll();
			layer.open({
			    content: error_msg,
			    className: 'layer-msg',
			    time: 2
			});
		}
	}, function(error) {
		switch (error.code) {
			case error.PERMISSION_DENIED:
				error_msg = "用户拒绝对获取地理位置,"
				break;
			case error.POSITION_UNAVAILABLE:
				error_msg = "位置信息是不可用,"
				break;
			case error.TIMEOUT:
				error_msg = "请求定位超时,"
				break;
			case error.UNKNOWN_ERROR:
				error_msg = "未知错误,"
				break;
			default :
				break;
		}
		layer.closeAll();
		layer.open({
		    content: error_msg+"请手动选择城市。",
		    className: 'layer-msg',
		    time: 2
		});
	}, {
		timeout : 3000,
		enableHighAccuracy : true,
		maximumAge : 10000
	});
}

后来发现,原来要使webview支持html5定位,需要安卓在调用webview前加几行代码,如下:

必须启用数据库(可以安卓本地创建数据库)


展开阅读全文

没有更多推荐了,返回首页