微信小程序开发设置获取权限管理,摄像头权限,位置权限,用户信息权限等

2023-11-18

在小程序开发的时候,我们总会遇到很多权限问题,比如摄像头权限,位置权限,用户信息权限等,如果不加以判断,很难给用户一个好的体验。

有一天,小明来参观一个拍照微信小程序。 他很感兴趣,看着精美的页面,忍不住点击了拍照按钮。 然而,他太兴奋了,以至于点击了错误的授权选项。 他选择了“拒绝❌”选项。 接下来无论点击多少次,拍照功能都无法打开。 年事已高、不懂手机权限设置的小明陷入了痛苦之中。

所以,正确的处理权限是个比较重要的事情。

1:获取用户的授权设置

使用 wx.getSetting 可以获取用户已经同意的授权和拒绝的授权。

wx.getSetting({
    success: res => {
        if (scope) {
            resolve(res.authSetting[scope])
        } else {
            resolve(res.authSetting)
        }
    },
    fail: err => {
        reject(err)
    }
})

2:打开小程序的授权设置

在得知用户拒绝某个权限后,我们就可以调用 openSetting 帮助用户跳转到权限设置页面,免去了查找的麻烦。

再回调中我们可以做一些判断,判断用户是否正确的打开了相应权限。

wx.openSetting({
    success: res => {
        if (res.authSetting['scope.camera']) {
                // 正确的打开了摄像头权限
                // ......
        } else {
            // 未打开摄像头权限
            // ......
        }
    },
    fail: err => {
        // 出错
    }
})

3:主动拉起授权页

除此之外,其实还有一种情况,就是用户即没有同意也没有拒绝,这时候就需要主动拉起授权页了。

使用authorize可以实现这个功能。

wx.authorize({
    scope: 'scope.camera',
    success() {
        // 用户已经同意小程序使用摄像头
        // ......
    },
    fail() {
        // 用户拒绝授权
    }
})

这里还有个问题需要注意,就是我们怎么判断用户是既没有同意授权也没有拒绝授权的状态

当我们使用 wx.getSetting 获取用户授权权限扽时候会有个对象,比如:

{
   scope.address: true,
   scope.camera: undefined, // 用户既没有同意也没有拒绝
   scope.invoice: true,
   scope.invoiceTitle: true,
   scope.userInfo: true,
}

当其中某个值不是true也不是false,即为undefined的时候就可以判断用户处于未拒绝和未同意的状态。

4:权限表

具体权限表你可以访问 微信小程序权限表 进行查阅。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序开发设置获取权限管理,摄像头权限,位置权限,用户信息权限等 的相关文章

  • Element-UI中Select选择器详解

    前言 最近开发的后台管理系统项目采用Vue Element UI技术架构 在使用Elment UI中Select组件的时候遇到了比较多的操作难题 官网上关于这个组件的使用文档介绍的不是很详细 仅仅提供了一些基本用法 很多拓展场景都没有涉及到
  • win10服务器文件夹在哪里找,recent文件夹在哪里找_recent文件夹怎么清理

    recent文件夹在哪里找 recent文件夹怎么清理 Windows7系统在运行的时候会在系统内产生一定的垃圾 一般会保存在系统C盘中的WINDOWSCookies RECYCLED WINDOWSHistory WindowsRecen
  • 我的居转户之路

    1月6日提交材料 需要补充税单 重开离职证明 1月12日提交成功 3月10日受理通过 3月18日补充总公司组织机构代码 原来过期 房产证与居住证地址不一致证明 3月24日区里审核通过 3月17日去人才中心查询 市里还没有开始审核 4月29日
  • zookeeper3.4.6集群部署

    在安装Zookeeper之前 首先需要确保的就是主机名称 可选 hosts都已经更改 并且JDK成功安装 1 安装Zookeeper 使用命令 tar zxvf 命令将gz压缩文件解压 笔者Zookeeper的安装目录为 home Hado
  • odoo提交后不允许修改

    odoo工作流中 初始状态为 draft 提交后state状态改变 希望提交后数据不允许再修改 代码如下 reason fields Text string 请假事由 default required True states draft r
  • 若依框架放在服务器后台验证码出不来原因分析

    经发现是 env production 文件里的VUE APP BASE API没有修改成服务器上的域名地址 还是 prod api 所以加载不出来 vue config js里的某项配置后端端口不对 要修改成对应的后端端口即可
  • http爬虫简易版

    懂得都懂 en 不做过多的介绍 const http require http const https require https const cheerio require cheerio function filterData data
  • JS语法基础-核心语句

    1 表达式 表达式 expression JavaScript中的 短语 是JavaScript中用于计算并产生一个结果值的 短语 如 下面是一些最简单的字面量值和变量表达式 10 数字字面值 JavaScript 字符串字面值 i 变量表
  • (4)C中初始化字符串的几种方式和比较

    字符串几种定义方式的对比 一 字符串的定义方式 1 利用字符指针创建字符串 1 1 利用字符指针创建字符串 只能用字符串常量的方式进行初始化 2 利用字符数组创建字符串 2 1 情况1 定义了字符数组的长度 2 2 情况2 省略了定义数组长

随机推荐

  • 小记-面试时对MVC的理解

    MVC分别表示模型 视图 控制 1 模型层也叫业务逻辑层 是整个应用程序的核心 模型层接收视图层请求的数据并处理 返回最终的结果 2 视图层就是用户看到的并与之交互的界面 3 控制层就是接收用户的请求 并根据请求来决定调用哪个模型和视图去完
  • 中台战略-第四章、企业中台5大成功要素

    文章目录 第四章 企业中台5大成功要素 4 1 中台文化 7个行动准则和行动纲领 4 1 1 战略有思想 4 1 2 融合跨部门 4 1 3 创新快支持 4 1 4 试错多包容 4 1 5 共享创条件 4 1 6 赋能是基础 4 1 7 行
  • 性能使用指令

    vmstat 1 总的CPU利用率 mpstat P ALL 1 每个CPU核的利用率 top pidstat 每个进程的CPU利用率 信息来源 proc stat proc pid stat 查看网络流量 sar n DEV 1 100
  • jmeter调试错误大全

    一 前言 在使用jmeter做接口测试的过程中大家是不是经常会遇到很多问题 但是无从下手 不知道从哪里开始找起 对于初学者而言这是一个非常头痛的事情 这里结合笔者的经验 总结出以下方法 二 通过查看运行日志调试问题 写好脚本后 可以先试着运
  • HTML5 FormData 方法介绍

    XMLHttpRequest 是一个浏览器接口 通过它 我们可以使得 Javascript 进行 HTTP S 通信 XMLHttpRequest 在现在浏览器中是一种常用的前后台交互数据的方式 2008年 2 月 XMLHttpReque
  • Node.js中的回调解析

    Node js 异步编程的直接体现就是回调 异步编程依托于回调来实现 但不能说使用了回调后程序就异步化了 回调函数在完成任务后就会被调用 Node 使用了大量的回调函数 Node 所有 API 都支持回调函数 例如 我们可以一边读取文件 一
  • TCP打洞和UDP打洞的区别

    为什么网上讲到的P2P打洞基本上都是基于UDP协议的打洞 难道TCP不可能打洞 还是TCP打洞难于实现 假设现在有内网客户端A和内网客户端B 有公网服务端S 如果A和B想要进行UDP通信 则必须穿透双方的NAT路由 假设为NAT A和NAT
  • 决策树和随机森林的实现,可视化和优化方法

    决策树原理 决策树原理这篇文章讲的很详细 本文仅写代码实现 构造决策树 matplotlib inline import matplotlib pyplot as plt import pandas as pd from sklearn d
  • Ubuntu 下配置android studio 配置 adb环境变量 普通用户可以执行 root用户无法执行

    我们环境变量其实已经配置好了 但普通用户下可以执行adb root权限下就不能执行 我们看一下 普通用户和 root用户所在的目录 root 权限不能执行 我们切换一下 普通用户的当前目录 普通用户adb 可以执行 我们新开一个窗口 切换到
  • notepad++插件查看十六进制

    下载hex editor 点击plugins 选择plugin manager show plugin managers 然后再available里面找到hex editor 然后下载 使用hex editor 点击plugins hex
  • 1055. 集体照 (25) PAT乙级真题

    1055 集体照 25 拍集体照时队形很重要 这里对给定的N个人K排的队形设计排队规则如下 每排人数为N K 向下取整 多出来的人全部站在最后一排 后排所有人的个子都不比前排任何人矮 每排中最高者站中间 中间位置为m 2 1 其中m为该排人
  • clockwise print binary search tree

    给一个二叉树 顺时针打印出所有的节点 例如 应该打印 20 8 4 10 14 25 22 思路 可以分为三步打印 1 打印左边界 最后一个叶子节点不打印 2 打印所有叶子结点 3 打印右边界 根和最后一个叶子结点不打印 代码如下 void
  • buu [ACTF2020 新生赛]Exec

    这道题倒是很直白简单 基本上知道命令注入这个知识点就行 命令注入 127 0 0 1 ls 127 0 0 1 ls flag 127 0 0 1 cat flag
  • 软件测试包括哪些内容

    以下是一些需要考虑的步骤 1 得到需求 功能设计 内部设计说书和其他必要的文档 2 得到预算和进度要求 3 确定与项目有关的人员和他们的责任 对报告的要求 所需的标准和过程 例如发行过程 变更过程 等等 4 确定应用软件的高风险范围 建立优
  • NIO - IO多路复用详解

    文章目录 Java NIO IO多路复用详解 现实场景 典型的多路复用IO实现 Reactor模型和Proactor模型 传统IO模型 Reactor事件驱动模型 Reactor模型 业务处理与IO分离 Reactor模型 并发读写 Rea
  • Adobe PhotoShop安装程序无法初始化的解决办法

    近日需要使用PhotoShop 不想下了好几个水版 给大家一个可以用的 http pan baidu com s 1dDnJLy5 不仅安装不了而且把机子的注册表改了 再次安装时就出现了 安装程序无法初始化 的问题 网上各种查找 零零散散的
  • 范数(简单的理解)、范数的用途、什么是范数

    没学好矩阵代数的估计范数也不是太清楚 当然学好的人也不是太多 范数主要是对矩阵和向量的一种描述 有了描述那么 大小就可以比较了 从字面理解一种比较构成规范的数 有了统一的规范 就可以比较了 例如 1比2小我们一目了然 可是 3 5 3 和
  • kafka消费的三种模式_快速认识Kafka

    1 Kafka是什么 简单的说 Kafka是由Linkedin开发的一个分布式的消息队列系统 Message Queue kafka的架构师jay kreps非常喜欢franz kafka 觉得kafka这个名字很酷 因此将linkedin
  • 【TypeScript(一)】TypeScript的变量类型及声明

    TypeScript的变量类型及声明 TS和JS最大的区别就是在其中给变量引入了类型的概念 比如像之前我们使用JS的时候 var a 10 这时a是数据类型 但当如果我们后面要使用a 我们也可以a hello 这时a就变成了一个字符串类型
  • 微信小程序开发设置获取权限管理,摄像头权限,位置权限,用户信息权限等

    在小程序开发的时候 我们总会遇到很多权限问题 比如摄像头权限 位置权限 用户信息权限等 如果不加以判断 很难给用户一个好的体验 有一天 小明来参观一个拍照微信小程序 他很感兴趣 看着精美的页面 忍不住点击了拍照按钮 然而 他太兴奋了 以至于