小程序获取收货地址

methods:{
			...mapMutations('user',['setAddress']),
			async chooseAddress(){
				// 1. 调用小程序提供的 chooseAddress() 方法,即可使用选择收货地址的功能
					    //    返回值是一个数组:第 1 项为错误对象;第 2 项为成功之后的收货地址对象
							//不用解析方式拿数据[err,info]拿不到这两条数据
					const data= await uni.chooseAddress().catch(err => err)
					 // 2. 用户成功的选择了收货地址
					 console.log(data);
					if(data.errMsg === 'chooseAddress:ok'){			
						 this.setAddress(data)				
					}
					  // 3. 用户没有授权
					  if (data.errMsg === 'chooseAddress:fail auth deny' || data.errMsg === 'chooseAddress:fail authorize no response') {
					    this.reAuth() // 调用 this.reAuth() 方法,向用户重新发起授权申请 ios 需要有这个验证
					  }
				},
				async reAuth() {
				  // 3.1 提示用户对地址进行授权
				  const [err2, confirmResult] = await uni.showModal({
				    content: '检测到您没打开地址权限,是否去设置打开?',
				    confirmText: "确认",
				    cancelText: "取消",
				  })
				
				  // 3.2 如果弹框异常,则直接退出
				  if (err2) return
				
				  // 3.3 如果用户点击了 “取消” 按钮,则提示用户 “您取消了地址授权!”
				  if (confirmResult.cancel) return uni.$showMsg('您取消了地址授权!')
				
				  // 3.4 如果用户点击了 “确认” 按钮,则调用 uni.openSetting() 方法进入授权页面,让用户重新进行授权
				  if (confirmResult.confirm) return uni.openSetting({
				    // 3.4.1 授权结束,需要对授权的结果做进一步判断
				    success: (settingResult) => {
				      // 3.4.2 地址授权的值等于 true,提示用户 “授权成功”
				      if (settingResult.authSetting['scope.address']) return uni.$showMsg('授权成功!请选择地址')
				      // 3.4.3 地址授权的值等于 false,提示用户 “您取消了地址授权”
				      if (!settingResult.authSetting['scope.address']) return uni.$showMsg('您取消了地址授权!')
				    }
				  })
				}
		},
		computed:{
			...mapState('user',['address']),
			addresstr(){
				return this.address.cityName+this.address.countyName+this.address.detailInfo
			}
		}
	}

data打印的数据

 需要在Hbulider中的manifest.json中——>源码视图 配置requiredPrivateInfos 注意配置位置

 "mp-weixin" : {
        "appid" : "wx1d5027e84e6ce102",
        "setting" : {
            "urlCheck" : false,
			"checkSiteMap":false
        },
        "usingComponents" : true
    },
    "mp-alipay" : {
        "usingComponents" : true
    },
    "mp-baidu" : {
        "usingComponents" : true
    },
    "mp-toutiao" : {
        "usingComponents" : true
    },
    "uniStatistics" : {
        "enable" : false
    },
    "vueVersion" : "2",
	"requiredPrivateInfos":[
		"chooseAddress"
	]
}

微信开发者工具中app.json中 加上这个配置项

 "requiredPrivateInfos": [

    "chooseAddress"

  ],

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值