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

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

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

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

文章目录

      • 1:获取用户的授权设置
      • 2:打开小程序的授权设置
      • 3:主动拉起授权页
      • 4:权限表

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:权限表

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】定制化diffusion微调: DreamBooth原理

论文:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 项目:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 代码:Dreambooth-Stable-Diffusion 1. 任务简…

Kotlin基础(八):泛型

前言 本文主要讲解kotlin泛型,主要包括泛型基础,类型变异,类型投射,星号投射,泛型函数,泛型约束,泛型在Android中的使用。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 泛型基…

Unity XML1——XML基本语法

一、XML 概述 ​ 全称:可拓展标记语言(EXtensible Markup Language) ​ XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml ​ 我们在游戏中可以把游戏数据按照 XML 的格式标…

istio 常见问题排查

配置校验 istioctl validate istioctl validate 可用于校验 istio 配置文件规则,即:验证YAML文件。 istioctl analyze istioctl analyze 可用于检查istio配置潜在的问题。 如,校验某命名空间下资源配置: $ istioctl analyze…

JAVA线上问题排查降龙十八掌

现场问题一般有以下几种问题 CPU,磁盘,内存,GC问题,网络 同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。 …

windows中文界面乱码问题

我的便携是内部返修机,买来时就是英文版,在设置中改成简体中文就可以了,与中文版没有什么区别,已经升级成win11。windows自身的应用、360之类的界面都能正常显示,但是个别应用总是乱码,根据客服的提示设置一…

非线性质量弹簧阻尼器的神经网络仿真研究(Matlab代码Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

关于在虚拟机CentOS7的Docker下安装Oracle

这不三阶段了,要上Oracle了,感觉这个班卷的程度到位。二阶段我就上了ElementUI和MyBatis,项目也是用这些技术写的,整体钻研程度还行。于是布置了两个任务:在windows下安一下Oracle,在windows下安装Oracle那…

python安装第三方包的两种方式

最近研究QQ空间、微博的(爬虫)模拟登录,发现都涉及RSA算法。于是需要下一个RSA包(第三方包)。折腾了很久,主要是感觉网上很多文章对具体要在哪里操作写得不清楚。这里做个总结,以免自己哪天又忘…

element el-transfer组件实现右侧列表可拖拉拽效果

需求是实现Transfer 穿梭框选中的数据列表&#xff0c;可以拖拉拽进行排序功能。 主要是使用到了sortablejs插件。 首先安装sortablejs npm install sortablejs --save再使用的vue文件中引用插件 <el-transfer ref"transfer" v-model"form" :data&qu…

GRE TAP的工作原理与5G工业物联网中的应用

随着互联网新技术的发展以及智能化水平的提高&#xff0c;各企业对实时数据传输的需求也在不断提升&#xff0c;企业愈发重视数据中心的建设&#xff0c;以保障企业内网数据安全。 GRE&#xff08;Generic Routing Encapsulation&#xff0c;通用路由封装&#xff09;协议属于…

作为一名程序员,IVX你值得拥有

目录 一、IVX是什么 二、IVX编程盒子——低代码平台的首个硬件产品 iVX做硬件的原因 iVX自身特点——安全、方便、高效、低耗 三、IVX编程盒子自带的Demo系统 1. 问题反馈、在线沟通和工单处理系统 2. 大屏幕监管平台 四、IVX和其他代码平台的区别 五、低代码未来的发展…

使用sftp

一、背景 新项目组前端部署方式是Build打包生成dist文件&#xff0c;交由后端部署。后来知道了vscode安装sftp前端可以自行部署。 二、实操 1、vscode安装sftp 2、 配置 ①F1 / ctrlshiftp ②命令行输入sftp -> 选择 sftp: Config ③配置信息介绍 {"name"…

阿里云国际版账号注册常见问题汇总

公司现与阿里云国际站达成战略合作&#xff0c;为客户提供高品质、高性能、高可用的阿里云产品与服务&#xff0c;助力客户用云服务创造更多价值&#xff0c;达成业务转型、加速和创新&#xff0c;全面提升业务竞争力。助企业在各种业务场景中充分利用混合云基础设施进行优化。…

Qt5.14.2+VS2019配置MSVC2017

问题&#xff1a; The compiler " Microsoft Visual C Compiler 16 . 11 . 32106 . 194 ( amd64 x86 )( x86-windows-msvc2019-pe-32bit ) cannot produce code for the Qt version " Qt5.14.2 MSVC2017 64bit " ( x86-windows-msvc2017-pe-64bit 编译器“…

设计模式三:抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一种方式来创建一系列相关或相互依赖的对象&#xff0c;而无需指定具体实现类。 在软件开发中&#xff0c;有时候需要根据不同的条件或环境来创建一组相关的对象。抽象工…

Unity UGUI的TouchInputModule (触摸输入模块)组件的介绍及使用

Unity UGUI的TouchInputModule (触摸输入模块)组件的介绍及使用 1. 什么是TouchInputModule组件&#xff1f; TouchInputModule是Unity中的一个UGUI组件&#xff0c;用于处理触摸输入事件。它可以让你的游戏在移动设备上实现触摸操作&#xff0c;如点击、滑动、缩放等。 2. …

钉钉和金蝶云星空接口打通对接实战

钉钉和金蝶云星空接口打通对接实战 对接系统&#xff1a;钉钉 钉钉是阿里巴巴集团打造的企业级智能移动办公平台&#xff0c;是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉工牌、工作台深度整…

Clion开发Stm32之温湿度传感器(DHT11)驱动编写

前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DHT11驱动文件 头文件 /*******************************************************************************Copyrig…

制定机器学习规划路线:从入门到专业

文章目录 &#x1f340;第一阶段&#xff1a;入门基础&#x1f340;了解机器学习概念&#x1f340;学习编程和数学基础&#x1f340;探索经典机器学习算法&#x1f340;完成实践项目 &#x1f340;第二阶段&#xff1a;深入学习&#x1f340; 掌握深度学习基础&#x1f340;学习…