小程序获取微信内部地址,微信有提供api,但是获取内部地址需要获得用户授权,首次拒绝授权的情况下,第二次要通过openSetting来打开授权页面进行授权。
微信开发者文档:https://uniapp.dcloud.net.cn/component/uniui/uni-nav-bar.html#%E4%BB%8B%E7%BB%8D
getWxAddress() {
let that = this;
// #ifdef MP
uni.authorize({
scope: 'scope.address',
success: function() {
uni.chooseAddress({
success: function(data) {
var params = {
text: data.provinceName + data.cityName + data.countyName
}
parseAddress(params).then(res => {
if(res.status==200 && res.message=="success"){
console.log("微信地址城市:", res.data.county_info.city_id);
if(res.data.county_info) that.userAddress.selectAddress = parseInt(res.data.county_info.city_id);
that.userAddress.real_name = data.userName;
that.userAddress.phone = data.telNumber;
that.userAddress.userAddressdetail = data.detailInfo;
that.$forceUpdate();
}
}).catch(res => {
console.log("没有地址信息")
})
},
fail: function(res) {
if (res.errMsg == 'chooseAddress:cancel') return that.$util.Tips({
title: '取消选择'
});
},
})
},
fail: function(res) {
uni.showModal({
title: '您已拒绝导入微信地址权限',
content: '是否进入权限管理,调整授权?',
success(res) {
if (res.confirm) {
uni.openSetting({
success: function(res) {}
});
} else if (res.cancel) {
return that.$util.Tips({ title: '已取消!' });
}
}
})
},
})
// #endif
},