微信小程序(十七)- 收获地址功能

223 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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.再重新去获取收货地址信息

image.png

具体实现

  //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)
             }
            })
          }
        })
      }
    }
  })

以上,一个完整的获取地址的功能才算实现。