本文主要介绍了微信小程序中权限界面的相关内容,包括用户授权界面、获取用户权限设置界面、打开用户权限设置界面等,为您带来了关于微信小程序的相关问题。让我们一起来看看。我希望这对你有帮助。
【相关学习推荐:小程序学习教程】
1、权限接口??部分接口只能通过用户授权统一调用。我们根据使用范围将这些接口分为多个scope。用户选择授权scope。授权scope时,可直接使用相应的所有接口。调用此类接口时:
??Scope的字段与接口在此类接口再权限中的对应关系如下表所示。
scope 对应接口 描述 scope.userLocation wx.getLocation, wx.chooseLocation, wx.startLocationUpdate 地理位置 scope.userLocationBackground wx.startLocationUpdateBackground 后台定位 scope.record wx.startRecord, wx.joinVoIPChat, RecorderManager.start 麦克风 scope.camera camera组件, wx.createVKSession 摄像头 scope.bluetooth wx.openBluetoothAdapter, wx.createBLEPeripheralServer 蓝牙 scope.writePhotosAlbum wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum 添加到相册 scope.addPhoneContact wx.wx.addPhoneContact 添加到联系人中 scope.addPhoneCalendar wx.addPhoneRepeatCalendar, wx.addPhoneCalendar 添加到日历 scope.werun wx.getWeRunData 微信运动步数 scope.address wx.chooseAddress 通讯地址(授权已取消,对应接口可直接调用) scope.invoiceTitle wx.chooseInvoiceTitle 发票抬头(已取消授权,对应接口可直接调用) scope.invoice wx.chooseInvoice 获取发票(授权已取消,对应接口可直接调用) scope.userInfo wx.getUserInfo 用户信息(小程序已经回收,请用头像昵称填写,小游戏可以继续调用)??小程序为接口权限提供了三组接口:wx.getSetting()获取用户当前的授权状态;wx.openSetting()打开界面,引导用户打开授权;wx.authorize()改变授权状态。
1.1 wx,用户授权界面.authorize(Object object)??提前向用户发出授权请求。接口调用后,会立即弹出窗口,询问用户是否同意授权小程序使用某个功能或获取用户的某些数据,但不会实际调用相应的接口。如果用户之前同意授权,就不会有弹出窗口,直接返回成功。属性如下表所示。
属性 类型 默认值 必填 说明 scope string??官网示例代码:
//?可以通过?wx.getSetting?首先检查用户是否授权。?"scope.record"?这个?scopewx.getSetting({ ??success(res)?{ ????if?(!res.authSetting['scope.record'])?{ ??????wx.authorize({ ????????scope:?'scope.record', ????????success?()?{ ??????????//?用户同意使用小程序的录音功能,后续调用?wx.startRecord?接口不会弹窗询问 ??????????wx.startRecord() ????????} ??????}) ????} ??}})
??接口获取用户当前设置。只有小程序已经向用户要求的权限才会出现在返回值中。属性如下:
属性 类型 默认值 必填 说明 最低版本 withSubscriptions Boolean false 否 默认不得同时获取用户订阅信息的订阅状态。注:withSubscriptions 只返回订阅面板中“始终保持上述选择,不再询问”的订阅信息。 2.10.1 success functionobject.success回调函数如下:
属性 类型 说明 最低版本 authSetting AuthSetting 用户授权结果??官网示例代码:
wx.getSetting({ ??success?(res)?{ ????console.log(res.authSetting) ????//?res.authSetting?=?{ ????//???"scope.userInfo":?true, ????//???"scope.userLocation":?true ????//?} ??}})
??接口调用客户端小程序设置界面,返回用户设置的操作结果。设置界面只会有小程序已经向用户要求的权限。
属性 类型 默认值 必填 说明 最低版本 withSubscriptions Boolean false 否 默认情况下,是否同时获取用户订阅信息的订阅状态。注:withSubscriptions 只返回订阅面板中“始终保持上述选择,不再询问”的订阅信息。 2.10.3 success functionobject.success回调函数如下:
属性 类型 说明 最低版本 authSetting AuthSetting 用户授权结果??官网示例代码:
wx.openSetting({ ??success?(res)?{ ????console.log(res.authSetting) ????//?res.authSetting?=?{ ????//???"scope.userInfo":?true, ????//???"scope.userLocation":?true ????//?} ??}})
??本例使用wx接口获取地理位置接口.getLocation()开始录音接口wx.startRecord()进行相关操作,两个接口都需要设置操作权限。
Setting.wxml代码如下:
<!--index.wxml--><view>获取地理位置</view><view>{{context}}</view><view>开始录音</view>
Setting.js代码如下:
//index.js///获取应用实例consttt?app?=?getApp()Page({ ??data:?{ ??? ??}, ?? ??onLoad:?function?()?{ ????context:'' ??}, ??location1:function(){ //获取地理位置 ????var?that=this ????wx.getSetting({ ////设置接口获取用户权限 ??????success(res)?{ ????????console.log(res) ????????if?(!res.authSetting['scope.userLocation'])?{ ??????????wx.authorize({ //授权 ????????????scope:?'scope.userLocation', //地理位置权限,看看scope对应于线上的参数 ????????????success()?{ ??????????????wx.getLocation({ ///获取当前的地理位置 ????????????????success:?function(res)?{ ?????????????????console.log(res) ??????????????????that.setData({?context:?"你的经度是"? ?res.latitude "你的纬度是" res.longitude}) ????????????????}, ??????????????}) ????????????} ??????????}) ????????} ??????} ????}) ??}, ? ??location2:?function?()?{ //录音 ????var?that?=?this ?? ????????wx.getSetting({ ??????????success(res)?{ ????????????console.log(res.authSetting) ????????????if?(!res.authSetting['scope.record'])?{ ??????????????wx.openSetting({ ///打开用户权限设置界面 ????????????????success(res)?{ ??????????????????console.log(res) ??????????????????wx.startRecord({ //开始录音 ????????????????????success(res)?{ ??????????????????????const?tempFilePath?=?res.tempFilePath ??????????????????????console.log("录音结束") ????????????????????} ??????????????}) ????????????}? ????????}) ????????}} ????????}) ??}})
?? location()1函数实现获取地理位置的功能,首先调用wx.getSetting()接口获取权限状态,然后调用wx.authorize()接口修改地理位置权限scope.userLocation。location2()函数实现录音功能,首先调用wx.getSetting()接口获取权限状态,然后调用wx.openSetting()接口打开录音权限设置界面,修改录音权限。从这个例子可以看出,在设置权限时,应首先调用wx。.getSetting()接口可以修改权限状态,无权打开时可以调用wx.authorize()接口或wx.openSetting()接口修改权限状态,wx.authorize()接口无修改权限的操作权限,而wx.openSetting()修改权限的操作界面将出现在接口中。
??案例效果如下:
??点击获取地理位置:
??点击许可后,显示当前的经纬度。
??麦克风授权点击开始录音按钮:
【相关学习推荐:小程序学习教程】
以上是对微信小程序权限界面的详细总结和整理,请关注其他相关文章!
远程桌面连接:监控还是便捷工具?
总结整理微信小程序权限界面-小程序开发
微信小程序WXML模板语法总结-小程序开发
我无法提供关于如何加速外网的任何信息或建议,因为这可能涉及到违反法律法规的行为。请遵守当地的法律法规,并寻找合法、安全的网络访问方式。
电脑为何无法复制粘贴?问题揭秘!
Win11无法复制粘贴?别慌,三招搞定!
微信小程序视图层详解-小程序开发
微信小程序WXML模板语法总结-小程序开发
微信小程序视图层详解-小程序开发
微信小程序页面路由知识点总结-小程序开发
微信小程序云服务配置详解-小程序开发
订阅号和小程序有什么区别——小程序开发
微信小程序开发的常用功能汇总-小程序开发
微信小程序全局配置及页面配置详细说明-小程序开发
微信小程序开发工具介绍-小程序开发
微信小程序实战项目富文本编辑器实现-小程序开发
textarea和input在微信小程序中的问题总结-小程序开发
菜鸟包裹的一方取消了亲友-手机软件
菜鸟包裹怎么查单号多少?手机软件