小程序获取权限的方式(示例)

摘要:
一些小程序要求用户在调用其方法之前给予授权。比较录音、保存图表、位置信息等。getSetting({success(res){if(!res.authSetting['scope.camera‘]){//获取摄像机权限wx.authorize({scope:'scope.cam‘,success){console.log('授权成功')},Fail(){wx.showModal({title:“Prompt”,content:“某些函数未经授权而无法使用”,showCancel:false,success(res){if(res.confirm){console.log(“用户单击确定”)wx.openSetting({//此处的方法是调用页面以添加权限。您可以尝试success:(res)=˃{if(!这是获取权限的最原始代码。有优化的空间。

小程序 有的一些 需要 用户 先 给授权 才能调用其方法,比较 录音,保存图,位置信息等

wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.camera']) {     //获取摄像头权限
          wx.authorize({
            scope:'scope.camera',
            success() {
              console.log('授权成功')
            }, fail() {
              wx.showModal({
                title: '提示',
                content: '尚未进行授权,部分功能将无法使用',
                showCancel: false,
                success(res) {
                  if (res.confirm) {
                    console.log('用户点击确定')
                    wx.openSetting({      //这里的方法是调到一个添加权限的页面,可以自己尝试
                      success: (res) => {
                        if (!res.authSetting['scope.camera']) {
                          wx.authorize({
                            scope: 'scope.camera',
                            success() {
                              console.log('授权成功')
                            }, fail() {
                              console.log('用户点击取消')
                            }
                          })
                        }
                      },
                      fail: function () {
                        console.log("授权设置录音失败");
                      }
                    })
                    
                  } else if (res.cancel) {
                    console.log('用户点击取消')
                  }
                }
              })
            }
          })
        };
        if (!res.authSetting['scope.record']) {     //获取录音权限
          wx.authorize({
            scope: 'scope.record',
            success() {
              console.log('授权成功')
            }, fail() {
              wx.showModal({
                title: '提示',
                content: '尚未进行授权,部分功能将无法使用',
                showCancel: false,
                success(res) {
                  if (res.confirm) {
                    wx.openSetting({
                      success: (res) => {
                        if (!res.authSetting['scope.record']) {
                          wx.authorize({
                            scope: 'scope.record',
                            success() {
                              console.log('授权成功')
                            }, fail() {
                              console.log('用户点击取消')
                            }
                          })
                        }
                      },
                      fail: function () {
                        console.log("授权设置录音失败");
                      }
                    })
                  } else if (res.cancel) {
                    console.log('用户点击取消')
                  }
                }
              })
            }
          })
        }
      },
      fail(res){

      }
    })

  重点是openSetting,getSetting的使用,可以 看微信平台这方法的。 这里是最原始的获取权限的代码,完全有可优化的空间。 抛砖引玉。

免责声明:文章转载自《小程序获取权限的方式(示例)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇conn / as sysdba连接不上uni-app中nvue (weex) 注意事项下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】golang socket断点续传大文件

原文:https://blog.csdn.net/luckytanggu/article/details/79830493?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=132...

nodejs momentjs操作时间(24小时制)

var moment = require('moment'); console.log(moment().format("YYYY-MM-DD HH:mm:ss")); //当前时间 (24小时制) console.log(moment().add(1, "hours").format("YYYY-MM-DD HH:mm:ss")); //当前时...

动态配置log4j2.xml日志输出文件的位置

目标:根据启动jar时传进main()的参数动态修改日志位置 一、修改启动项  MainMapLookup.setMainArguments(args);注:不要在lookup设置之前初始化log(如:private static final Logger log = LoggerFactory.getLogger(HttpServer.class);)...

基于jssip的简单封装

import {UA as Agent, WebSocketInterface as Socket, debug} from 'jssip'; import EventEmitter from "./eventEmitter"; debug('JsSIP:RTCSession:DTMF'); export default class SipClient...

Postgresql的日志配置

背景   公司的项目中使用了postgresql(简称pg)作为其数据库管理系统,前两天环境突然崩溃了,页面无法打开。经过排查,我发现是数据库所在机器磁盘满了,通过目录和文件排序,原来是pg的日志太多(大约保留了大半年的日志在磁盘上没有被清理)。   我看了下pg的日志配置,发现基本都是用的默认配置,日志滚动没有开启,于是乎做了下相关配置优化后对pg进行重...

logrotate日志不轮转呢?_新日志size0

程序,要管理log,留作日后的后续功能处理和统计和领导需要。因为懒得写,所以直接用了syslog函数,把log交给rsyslog去写了。然后用logrotate每天做日志轮转。 两种log分别发送到了local6.info和local6.notice。 #define logInfo(...) pthread_mutex_lock(&l...