plus.geolocation.getCurrentPosition()这个获取定位信息方法,在iPhone上没有任何问题,在安卓上真机调试也没有问题,但是云端打包后再安卓上运行获取不到address信息。
实现代码如下:
//获取位置信息
plus.geolocation.getCurrentPosition(function(p){
mui.toast(JSON.stringify(p));
if (!p || !p.address) {
return;
}
//经纬度
//console.log('Geolocation\nLatitude:' + p.coords.latitude + '\nLongitude:' + p.coords.longitude + '\nAltitude:' + p.coords.altitude);
//JSON对象,地址信息
console.log(JSON.stringify(p.address));
var cityName = p.address.city || "";
mui("header>a.mui-pull-right>.city-name")[0].innerHTML = cityName;
//保存城市名
localStorage.setItem("CITYNAME", cityName);
}, function(e){
console.log('Geolocation error: ' + e.message);
if (isShowToast) {
mui.toast("定位出错:"+e.message.split(",http://")[0]);
}
});
重现步骤
步骤:
云端打包后,用安卓运行。
结果:
见附件截图
能获取经纬度,但获取不到address。
[期望]
获取到address,拿到 p.address.city。
IDE运行环境说明
[HBuilder]
[IDE版本号]
HBuilder 9.1.19.201808300739
[mac版本号]
10.13.6
App运行环境说明
[Android版本号]
试了公司所有安卓机都有问题
联系方式
[961383696]
9***@qq.com (作者)
刚解决,云端打包后默认使用的是系统的定位,我集成了百度定位就好了
2018-11-12 17:47
9***@qq.com (作者)
用这种方式调(给plus.geolocation.getCurrentPosition()多加一个参数{provider:'baidu'}):
// 使用百度地图地位模块获取位置信息
plus.geolocation.getCurrentPosition(function(p){
alert('Geolocation\nLatitude:' + p.coords.latitude + '\nLongitude:' + p.coords.longitude + '\nAltitude:' + p.coords.altitude);
}, function(e){
alert('Geolocation error: ' + e.message);
},{provider:'baidu'});
2018-11-12 17:53
9***@qq.com (作者)
然后点击manifest.json文件,选SDK配置,配好对应appkey就好了,appkey的话去百度地图开放平台申请。
2018-11-12 18:00