思路
一.获取用户收货地址
1.绑定点击事件
2.调用小程序内置API 获取用户的收获地址 wx.chooseAddress
遇到的常见问题
用户触发事件,小程序会申请拿用户的地址,如果用户不小心点了取消,那个权限就会变成false,然后就无法调用,如果用户第一次使用,权限就undefined,这个权限打印名字出来是scope.adress(关于打印方法 是调用api----wx.getsetting
那么如何解决呢
1. 假设用户的权限原本是undefined和true 则直接触发地址获取就好了
2. 假设 用户点击取消 那就是fasle,那就按另外一个思路来走
(1)诱导用户自己打开授权设置页面 让用户给予地址权限
(2) 获取收货地址
先不说那么多 先上代码 有问题后面再讲
// pages/cart/index.js
Page({
handleChooseAddress(){
wx.getSetting({
success: (result) => {
const scopeAddress=result.authSetting["scope.address"];
//获取权限状态很怪异时候 都需要 [“ ”]形式来获取属性值
if (scopeAddress===true||scopeAddress===undefined) {
wx.chooseAddress({
success: (res) => {
console.log(res);
},
})
}else{
wx.openSetting({
success: (res) => {
wx.chooseAddress({
success: (res0) => {
console.log(res0);
},
})
},
})
}
},
})
}
})
最后 效果图
只要勾选上去 就可以正常获取了