概述
为了避免重复开发,自己封装了一个通用用户授权回调方法,只需要传入需要授权的scope,权限中文描述、回调函数,就可以实现一整套小程序是否授权、打开授权设置,调用后续操作函数的工作文章来源地址https://www.toymoban.com/news/detail-594455.html
功能
- 可以根据自己的实际应用进行微调
- 目前使用的uni-app版本,可以根据自己的情况变为wx版本
使用方式(示例)
<view class="sugon-button" @click="judgeAuthorize(authorScope,'拍照',handlePermission)">点我授权</view>
// 权限判断
import userPermission from '@/mixins/userPermission.js'
export default {
mixins:[commonRules,userPermission],
data() {
return {
authorScope:'scope.camera'
}
},
methods: {
handlePermission(){
console.log('授权后的操作')
}
}
}
具体封装
export default{
methods:{
// 权限判断
judgeAuthorize(scope,scopeDesc,callback){
uni.getSetting({
complete(setRes){
if(setRes.errMsg=='getSetting:fail'){ // 调用失败
// 调用失败提示
uni.showModal({
title:`您的账号没有小程序${scopeDesc}权限,请联系管理员!`,
showCancel:false
})
}else if(setRes.errMsg=='getSetting:ok'){ // 获取用户权限设置成功
if(setRes.authSetting[scope]){ // 当前权限已经授权(直接执行回调函数
callback()
}else{ // 用户未授权(吊起授权框)
uni.authorize({
scope,
complete(authoryRes){
if(authoryRes.errMsg=='authorize:fail auth deny'){ // 用户拒绝授权(不做任何操作)
console.log(`客户拒绝授权${scopeDesc}权限`)
uni.showModal({
title:`您的账号没有授权授权${scopeDesc}权限!`,
confirmText:'设置',
complete(modalRes){
if(modalRes.confirm){ // 设置
uni.openSetting()
}else if(modalRes.cancel){ // 取消不做任何操作
console.log(`客户拒绝授权${scopeDesc}权限`)
}
}
})
}else if(authoryRes.errMsg=='authorize:ok'){ // 授权成功
callback()
}
}
})
}
}
}
})
}
}
}
文章来源:https://www.toymoban.com/news/detail-594455.html
到了这里,关于微信小程序授权(uni-app)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!