小程序权限逻辑—如何严谨的获取用户录音、地理位置等权限并兼容用户拒绝授权的场景

小程序开发过程中最不能体现微信风格的一定就是权限了,最能体现微信风格的应该也是权限了,为什么这么说呢?太麻烦了,但这里的麻烦一定是经过微信深思熟虑之后做出的限制,毕竟一切以用户为中心。
不要看官方解释,因为要搞明白它的意思,估计得弄上半天。
看图吧
本方案适合:地理位置、运动步数、录音、保存到相册等权限的获取,至于后台定位、摄像头等特殊权限请稍等片刻

体验一下就能知道的差不多。

效果:

在这里插入图片描述

体验路径:

自定义系列>>微信那些烦人的权限
在这里插入图片描述

还不明白的话,可以看一下流程图,

在这里插入图片描述

附上其中一个的代码逻辑

以录音为例:
wxml

<button style="margin-top:20px;width:90%;" type="primary" bindtap="doSomeThingsNeedRecord">录音授权后Toast</button>

js

doSomeThingsNeedRecord() {
    var that = this
    wx.authorize({
      scope: 'scope.record',
      success() {
        console.log("录音授权成功");
        wx.showToast({
          title: '录音功能已授权',
        })
      },
      fail() {
        wx.showModal({
          title: '提示',
          content: '您未授权录音,功能将无法使用',
          showCancel: true,
          confirmText: "授权",
          confirmColor: "#52a2d8",
          success: function(res) {
            if (res.confirm) {
              wx.openSetting({
                success: (res) => {
                  if (!res.authSetting['scope.record']) {
                    that.doSomeThingsNeedRecord()
                  } else {
                    console.log("设置录音授权成功");
                    wx.showToast({
                      title: '录音功能已授权',
                    })
                  }
                },
                fail: function() {
                  console.log("授权设置录音失败");
                }
              })
            } else if (res.cancel) {
              console.log("cancel");
            }
          },
          fail: function() {
            console.log("fail");
          }
        })
      }
    })
  },

微信开放出很多权限,基本思路是这样的,但也有好多特殊的,比如相机需要camera组件去注册权限,后台定位干脆不弹窗等,在demo中都给了很好的解决方案,有机会会再分享一下那些特殊的情况如何写。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩烂小程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值