携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情
本次系列文章参与八月的更文活动,记录一个微信小程序从零到有的开发过程。本文为本系列第十七篇:收获地址功能
本项目中,需要涉及到部分商城的功能,故需要获取用户的收获地址功能,这个该如何实现呢?
实现思路
1.给收货地址按钮添加点击事件
2.调用微信小程序自带的获取收获地址的api wx.chooseAddress
但是,假如用户不允许授权获取地址,但下一次又想要获取授权地址,这个时候该怎么办呢? 其实,关于收获地址api的使用并没那么简单,以下才是应该有的正确流程:
1.先调用获取用户对小程序的授权信息的接口wx.getSetting,该接口会返回scope,scope则是用于判断用户对该应用的权限信息
2.对权限scope进行判断:
- scope可能是undefined:表示用户从来没有点击过收货地址按钮,则直接获取用户的收获地址
- scope可能是true:表示用户曾经给过应用权限,则也直接获取用户的收获地址
- scope可能是false:表示用户曾经点击取消授权,则需要进行以下操作:
- 1.先打开用户授权页面,(调用微信api:wx.openSetting),让用户自己重新授权
- 2.再重新去获取收货地址信息
具体实现
//1.获取用户对该应用授权信息
wx.getSetting({
success:(result1)=>{
//1.1获取用户的授权状态
const scopeAddress = result1.authSetting["scope.address"];
//1.2判断用户的授权状态
if(scopeAddress === true || scopeAddress === undefined){
//1.3直接获取用户的收获信息
wx.chooseAddress({
success:(result2)=>{
console.log(result2)
}
})
}
else{
//2.1诱导用户打开授权页面
wx.openSetting({
success:(result3)=>{
wx.chooseAddress({
success:(result4)=>{
console.log(result4)
}
})
}
})
}
}
})
以上,一个完整的获取地址的功能才算实现。