微信小程序端的各种授权逻辑处理,拒绝后再请求时的处理流程汇总

本文详细介绍了微信小程序中各种权限的处理逻辑,包括获取权限状态、首次请求权限、用户拒绝后的处理以及如何引导用户到设置中心授权。示例代码涵盖了位置、麦克风和摄像头权限的判断和授权流程,帮助开发者全面掌握小程序权限管理。

微信小程序各种权限处理授权逻辑,看这篇就够了

前言:

先看下效果:

微信小程序授权弹框操作

这篇博客不讲wx.getUserInfo的授权允许和拒绝的逻辑,只讲其他权限
在这里插入图片描述

从使用功能开始,详细的授权和拒绝授权以及在设置中再次授权的逻辑处理如下:

一、先贴一下通过wx.getSetting 获取各种权限的信息打印:

(以位置权限为例,其他权限相同)

1、若从未请求过权限(以位置权限为例)

	//wx.getSetting()结果:
	{
   
   
  "errMsg": "getSetting:ok",
  "authSetting": {
   
   
    "scope.address": true,
    "scope.invoice": true,
    "scope.invoiceTitle": true,
    "scope.userInfo": true
  }
}

如打印结果所示,第一次请求时authSetting中只有4个字段,若对除这4个字段之外的其他权限取值(如位置权限:scope.userLocation),结果是undefined。这里可以做是否为第一次获取权限的判断

2、请求过权限但未允许(以位置权限为例)

//wx.getSetting()结果:
{
   
   
  "errMsg": "getSetting:ok",
  "authSetting": {
   
   
    "scope.userLocation": false,
    "scope.address": true,
    "scope.invoice": true,
    "scope.invoiceTitle": true,
    "scope.userInfo": true
  }
}

此时对scope.userLocation取值为false ,这个时候要通过判断提示用户是否要去设置中心设置。

3、跳转设置中心设置权限(以位置权限为例)

通过wx.open跳转到设置中心去设置权限,代码如下:

wx.openSetting({
   
   
	success: res => {
   
   
		if (res.authSetting['scope.userLocation']) {
   
    
			// 授权成功
		}
	}
});
//wx.openSetting() 允许授权,返回结果:
{
   
   
  "errMsg": "openSetting:ok",
  "authSetting": {
   
   
    "scope.userLocation": true
  }
}
//wx.openSetting() 拒绝授权,返回结果:
{
   
   
  "errMsg": "openSetting:ok",
  "authSetting": {
   
   
    "scope.userLocation": false
  }
}

日常情况就是上面那几种,测试的时候将按钮都点一遍就可以覆盖到上面那几种情况,下面写具体判断流程,处理了对一种权限申请的允许和拒绝等逻辑

二:具体使用

1、单一权限

设有需求:要具有位置的使用权限,才能使用B功能。处理情况如下:

 // 功能B使用前判断位置使用权限
  getLocationAuthorize: function (e) {
   
   
    var self = this
    wx.getSetting(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值