更新记录

1.0.0(2023-12-07)

各种无权限时弹框提示,引导用户前往设置页打开相关权限,在调用相关权限api时,可以引用此组件先判断一下权限是否已授权,无授权弹出此弹框,已授权再去调取相关权限API,这样也可以处理上架提示应在用户使用对应业务功能时申请,不得提前弹窗申请权限,且权限申请行为需与实际使用目的一致的问题;


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.5.5 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

使用方法

<yk-checkpermission ref="authlocation" :title="permissionList[permissionID].title" :content="permissionList[permissionID].content" :buttonText="permissionList[permissionID].buttonText"  width="580" zIndex="99999" :isTips="true" :maskCloseAble="false" @authSuccess="authSuccess" :permissionID="permissionID"></yk-checkpermission>
import ykCheckpermission from '@/components/yk-checkpermission/yk-checkpermission';
export default {
   components:{
     ykCheckpermission
   },
    data() {
      permissionID:'ACCESS_FINE_LOCATION',
      permissionList: {
        'WRITE_EXTERNAL_STORAGE': {
            title: "还没有存储写入权限",
            content: "开启存储写入权限后,XXX将能访问您的摄像头/相册用于上传/下载/保存文件等",
            buttonText:'去设置'
        },
        'ACCESS_FINE_LOCATION': {
            title: "还不知道您在哪里",
            content: "开启定位权限后,XXX将为您精选附近的商品",
            buttonText:'去设置'
        },
        'CALL_PHONE': {
            title: "还没有拨打电话权限",
            content: "开启拨打电话权限后,XXX将能为您直接跳转电话界面",
            buttonText:'去设置'
        },
        'CAMERA':{
            title: "还没有摄像头权限",
            content: "开启摄像头权限后,XXX将能访问摄像头用于拍照等场景",
            buttonText:'去设置'
        },
        'WRITE_CALENDAR':{
            title: "还没有日历权限",
            content: "开启日历权限后,XXX将能访问日历添加备忘事件等场景",
            buttonText:'去设置'
        },
        'RECORD_AUDIO':{
            title: "还没有麦克风权限",
            content: "开启麦克风权限后,XXX将能访问麦克风用于语音、录音等场景",
            buttonText:'去设置'
        },
        'READ_CONTACTS':{
            title: "还没有通讯录权限",
            content: "开启通讯录权限后,XXX将能访问通讯录,用于添加新的联系人等场景",
            buttonText:'去设置'
        }
      }
    },
    methods: {
        //打开自定义权限目的弹框
        openAuth(permissionID){
            this.permissionID = permissionID;
            setTimeout(()=>{
                this.$refs['authlocation'].open();
            },500)
        },
        //权限获取后的回调函数
        authSuccess(){
            console.log('已授权该权限,可以调用该权限的API了')
            uni.showToast({
                title:'已授权该权限,可以调用该权限的API了',
                icon:'none'
            })
        }
    }
}

参数说明

参数名 类型 说明
title String 弹框内的标题
content String 弹框内的内容
buttonBackground Number, String 弹框按钮颜色
maskCloseAble Boolean 是否可以通过点击遮罩进行关闭
backGroundColor Number, String 弹框背景色
borderRadius Number, String 弹窗的圆角,单位rpx
buttonText Number, String 弹框文字
isTips Boolean 不再提醒是否显示
fontColor Number, String 按钮字体颜色
zIndex Number, String 弹框层级
width Number, String 弹框宽度,单位rpx
permissionID Number, String 权限名称
authSuccess 回调事件 权限授权后的回调

如果对您有点帮助的话,可以给点赞赏小鼓励哦,您的支持是我最大的动力,谢谢!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问