小程序chooseLocation,安卓获取不到省市的BUG
2019-11-13 本文已影响0人
G_console
描述
小程序使用wx.chooseLocation
方法选择地址,真机测试安卓上默认的第一个地址没有省市;
详细内容可以看我在微信开放社区发的帖子:假装我是标题 https://developers.weixin.qq.com...
解决方案
调用QQmapSDK
里的逆地址解析方法,文档地址:https://lbs.qq.com/qqmap_wx_jssdk/index.html
wx.chooseLocation({
success:function(response) {
const { address } = response;
let [province, city] =
address.match(/.+?(省|市|自治区|自治州|行政区)/g) || []; //正则匹配省市
if(!province || province == '' || !city || city == ''){ //如果没有获取到省市
//QQMapSdk: new的一个qqmapsdk对象
QQMapSdk.reverseGeocoder({
location: {latitude: response.latitude,longitude: response.longitude},
success: function (res) {
console.log("qqmapsdk-city",res)
city = res.result.address_component.city
province = res.result.address_component.province
},
fail: function(err){
console.log("qqmapsdk-err",err)
}
})
}
},
fail:function(err) {
console.log("err",err);
wx.hideLoading()
if(err.errMsg == 'chooseLocation:fail auth deny'){
wx.showModal({
content: '请点击确定手动打开定位授权',
title: '获取地址失败!',
success(result){
if(result.confirm){
wx.openSetting({
success (res) {
console.log(res.authSetting)
},
fail (err){
console.log(err)
}
})
}
}
});
}else{
wx.showToast({
icon: 'none',
title: "选择地址失败",
});
}
}
})