更新记录
1.0.5(2023-11-29)
修复存储隔离问题
1.0.4(2023-08-05)
1.0.3(2023-08-04)
查看更多
平台兼容性
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就提示跳转到设置页面
这样就避免判断是否询问权限
checkSelfPermission
判断是否有权限
requestPermissions
请求权限
gotoSystemSetting
跳转设置
提供方法,ios
ios使用权限逻辑,判断是否有权限,-1询问的时候去请求权限;0没有权限的时候提示跳转设置;1有权限的时候执行自己的逻辑
iosCheckPermission
判断是否有权限,返回-1 、 0 、 1,-1是询问;0是没有权限;1是有权限
iosRequestPermission
请求权限
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>