微信官方的说明,直接调用即可,但是由于该微信弹框如果拒绝,之后再不会弹出提示,而恰好wx.openSetting(),可以调起授权设置界面,显示用户已经调用过的微信授权,所以我们需要饶一下小弯路,但是也能做到用户拒绝授权后每次点击都能弹窗提示授权的功能。
两条路:
1、用户首次授权调用==》同意授权==》获取到用户地址列表信息
2、用户首次授权调用==》拒绝授权==》wx.showModal()的方式提示用户是否授权==》同意即调用wx.openSetting()(拒绝即隐藏弹窗)==》打开设置,打开/返回取消 ==》如同意即获取到用户地址列表
注:wx.openSetting必须以按钮或showModal的形式才能调用
用户成功授权后得到的参数说明:
具体代码:
**复制即可使用,需要一个按钮绑定chooseAddress
事件
chooseAddress(){wx.chooseAddress({//首次调用//同意授权success:res=>{console.log(res)//地址列表信息},fail:err=>{wx.getSetting({success: res => {if (res.authSetting['scope.address'] == false) {wx.showModal({//弹出框title: '我爱我家申请获取你的通讯地址?', content: '',confirmColor:'#48A63E',cancelText:'拒绝',confirmText:'允许',success:res=>{if (res.cancel){//再次拒绝}else{wx.openSetting({success: res => {wx.chooseAddress({success: res => {//opensetting后同意console.log(res)}, fail: err => {console.log(err)}})}, fail: err => {wx.showToast({title: '取消收货地址授权',icon: 'none'})}})}},fail:err=>{}})}}, fail: err => {console.log(err)}})}})},
如果对你有帮助,不要吝啬你的点赞!谢谢