小程序开发——授权相关操作

2019-10-12  本文已影响0人  前端进城打工仔

授权

在用户第一次请求授权时,可以弹出授权框进行授权。如果用户选择了拒绝,短期内不会出现弹窗,而是直接进入fail。

        Taro.authorize({
          scope: 'scope.writePhotosAlbum',
        }).then(() => {
          // 第一次授权成功会进入这里
        }).catch(({ errMsg }) => {
          // 第一次拒绝授权,以及拒绝后再次调用Taro.authorize不会弹出授权框,会直接进入这里。
          // 第一次拒绝授权的errMsg是authorize:fail auth deny
          // 再次调用Taro.authorize的errMsg是authorize:fail System error, error code:-12006,auth deny
          if (errMsg === 'authorize:fail auth deny') {
            Taro.showToast({
              title: '保存失败,请重试',
              icon: 'none',
              duration: 2000,
            })
          } else {
            this.openSettingToAuthorize()
          }
        })

在用户拒绝授权后,但是功能确实需要授权才能工作,就需要用另外的方式让用户去授权。
可以通过Taro.openSetting去打开微信的授权页面,让用户去授权。这里要注意的是openSetting要通过tap去触发showModal,再在showModal中调起

  openSettingToAuthorize() {
    Taro.showModal({
      title: '提示',
      confirmText: '去授权',
      content: '您没有权限,是否去授权?',
      success: ({ confirm }) => {
        if (confirm) {
          Taro.openSetting({})
        } else {
          Taro.showToast({
            title: '保存失败,请重试',
            icon: 'none',
            duration: 2000,
          })
        }
      }
    })
  }

达到的效果就是
1、点击授权,然后点击“取消”拒绝授权,显示失败提示
2、再次点击授权,此时因为判断用户已经拒绝过授权,所以会去调用showModal显示确认授权框
3、此时点击”确定“,回去调用openSetting,打开微信授权页面。如果点击取消就提示失败。

清空缓存

参考ios微信小程序缓存清理

用户信息

小程序与小游戏获取用户信息接口调整

获取用户信息方案

发布要注意

小程序官方说:为了给用户提供更好的小程序环境,我们约定在一段时间后(具体时间会做通知),若还出现以下情况(包括但不限于),将无法通过审核。

而以上的限制对于已经上线的小程序不会受到影响。

上一篇下一篇

猜你喜欢

热点阅读