更新记录

1.0.5(2023-11-29)

修复存储隔离问题

1.0.4(2023-08-05)

  • 增加相册权限判断和请求

1.0.3(2023-08-04)

  • 增加ios支持
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.8,Android:9.0,iOS:14,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

权限判断、权限请求、设置

提供方法,安卓

安卓使用权限的逻辑:先判断是否有权限,有权限则进行自己的操作,没有权限的时候就先请求权限,如果返回true就是有权限了,如果返回false就提示跳转到设置页面 这样就避免判断是否询问权限

  1. checkSelfPermission 判断是否有权限
  2. requestPermissions 请求权限
  3. gotoSystemSetting 跳转设置

提供方法,ios

ios使用权限逻辑,判断是否有权限,-1询问的时候去请求权限;0没有权限的时候提示跳转设置;1有权限的时候执行自己的逻辑

  1. iosCheckPermission 判断是否有权限,返回-1 、 0 、 1,-1是询问;0是没有权限;1是有权限
  2. iosRequestPermission 请求权限
  3. iosGotoSystemSetting 跳转设置

安卓常用权限清单

参数名 说明
android.permission.READ_EXTERNAL_STORAGE 外部存储(含相册)读取权限
android.permission.WRITE_EXTERNAL_STORAGE 外部存储(含相册)写入权限
android.permission.ACCESS_FINE_LOCATION 位置权限
android.permission.ACCESS_COARSE_LOCATION 模糊位置权限(蓝牙\ble依赖)
android.permission.CAMERA 摄像头权限
android.permission.RECORD_AUDIO 麦克风权限
android.permission.READ_CONTACTS 通讯录读取权限
android.permission.WRITE_CONTACTS 通讯录写入权限
android.permission.READ_CALENDAR 日历读取权限
android.permission.WRITE_CALENDAR 日历写入权限
android.permission.READ_SMS 短信读取权限
android.permission.SEND_SMS 短信发送权限
android.permission.RECEIVE_SMS 接收新短信权限
android.permission.READ_PHONE_STATE 获取手机识别码等信息的权限
android.permission.CALL_PHONE 拨打电话权限
android.permission.READ_CALL_LOG 获取通话记录权限

这里支持Android所有android.permission的值,更多值可参考Android开发文档

permissionID 值域清单

参数名 说明
location 位置
push 推送
camera 摄像头
photo 相册
record 麦克风
contact 通讯录
calendar 日历
memo 提醒事项
network 互联网,系统未提供接口供开发者手动请求网络权限,iOS10以上系统,应用首次请求网络会自动弹出,一个应用只弹出一次,卸载也不会重新弹出
bluetooth 蓝牙--不支持蓝牙请求权限

checkSelfPermission 使用教程

<template>
    <view>
        <button @click="hasPermission">判断权限</button>
    </view>
</template>

<script>
    import * as UTSPermission from '../../uni_modules/leruge-permission'
    export default {
        data() {
            return {}
        },
        methods: {
            hasPermission() {
                let res = UTSPermission.checkSelfPermission('android.permission.WRITE_EXTERNAL_STORAGE')
                // 返回true是有权限;false无权限
            },
        }
    }
</script>

<style lang="scss">

</style>

requestPermissions 使用教程

<template>
    <view>
        <button @click="requestPermissions">请求权限</button>
    </view>
</template>

<script>
    import * as UTSPermission from '../../uni_modules/leruge-permission'
    export default {
        data() {
            return {}
        },
        methods: {
            requestPermissions() {
                let permissionArr = ['android.permission.ACCESS_FINE_LOCATION', 'android.permission.WRITE_EXTERNAL_STORAGE']
                UTSPermission.requestPermissions(permissionArr, res => {
                    // status返回true则是所有权限全部获取;否则有权限没有同意
                    // grantedList,当status是true时为全部允许的权限;当status是false时,拒绝的权限
                    // {"status": false, "grantedList": ["android.permission.ACCESS_FINE_LOCATION"]}
                })
            },
        }
    }
</script>

<style lang="scss">

</style>

gotoSystemSetting 使用教程

<template>
    <view>
        <button @click="gotoSystemSetting">跳转设置</button>
    </view>
</template>

<script>
    import * as UTSPermission from '../../uni_modules/leruge-permission'
    export default {
        data() {
            return {}
        },
        methods: {
            gotoSystemSetting() {
                let permissionArr = ['android.permission.ACCESS_FINE_LOCATION', 'android.permission.WRITE_EXTERNAL_STORAGE']
                // 请求权限的时候如果没有全部同意,则可以把剩余的权限数组传入
                // 如果想直接调往设置页面,则可以什么都不传
                UTSPermission.gotoSystemSetting(permissionArr)
            },
        }
    }
</script>

<style lang="scss">

</style>

iosCheckPermission 使用教程

<template>
    <view>
        <button @click="iosCheckPermission">判断权限</button>
    </view>
</template>

<script>
    import * as UTSPermission from '../../uni_modules/leruge-permission'
    export default {
        data() {
            return {}
        },
        methods: {
            iosCheckPermission() {
                UTSPermission.iosCheckPermission('location', res => {
                    // 返回 {status: 1} 1是有权限;0是没有权限;-1是询问
                })
            }
        }
    }
</script>

<style>

</style>

iosRequestPermission 使用教程

<template>
    <view>
        <button @click="iosRequestPermission">请求权限</button>
    </view>
</template>

<script>
    import * as UTSPermission from '../../uni_modules/leruge-permission'
    export default {
        data() {
            return {}
        },
        methods: {
            iosRequestPermission() {
                UTSPermission.iosRequestPermission('location', res => {
                    // 返回 {status: 1} 1是获取权限;0是没有获得权限;
                })
            },
        }
    }
</script>

<style>

</style>

iosGotoSystemSetting 使用教程

<template>
    <view>
        <button @click="iosGotoSystemSetting">跳转设置</button>
    </view>
</template>

<script>
    import * as UTSPermission from '../../uni_modules/leruge-permission'
    export default {
        data() {
            return {}
        },
        methods: {
            iosGotoSystemSetting() {
                UTSPermission.iosGotoSystemSetting()
            },
        }
    }
</script>

<style>

</style>

隐私、权限声明

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

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

插件不采集任何数据

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

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