npm i --save ns-permissions
- 版本:2.0.1
- GitHub: https://github.com/liuy97/ns-permissions
- NPM: https://npmjs.net.cn/package/ns-permissions
- 下载量
- 昨日: 0
- 上周: 0
- 上月: 0
ns-permissions
Nativescript permissions,是 nativescript-perms 的克隆,导出更多的 Android 功能并支持高级的 Android 权限请求。
重大变更
ns-permissions@2 对应 Nativescript@7
ns-permissions@1 对应 Nativescript 版本 < 7
安装
tns plugin add ns-permissions
API
权限状态
Promise 解析为 [status:状态, always:boolean]
,其中状态为以下之一
返回值 | 备注 |
---|---|
authorized |
用户已授权此权限 |
denied |
用户至少拒绝过此权限一次。在 iOS 上这意味着用户将不会被再次提示。Android 用户可以被多次提示,直到他们选择 '不再询问'。 |
restricted |
iOS - 这意味着用户无法授予此权限,可能是因为设备不支持或者被家长控制阻止。 Android - 这意味着用户在拒绝权限时选择了 '不再询问'。 |
undetermined |
用户尚未被提示权限对话框 |
Android 权限有
AndroidPermissions | Android |
---|---|
READ_CALENDAR | 'android.permission.READ_CALENDAR' |
WRITE_CALENDAR | 'android.permission.WRITE_CALENDAR' |
CAMERA | 'android.permission.CAMERA' |
READ_CONTACTS | 'android.permission.READ_CONTACTS' |
WRITE_CONTACTS | 'android.permission.WRITE_CONTACTS' |
GET_ACCOUNTS | 'android.permission.GET_ACCOUNTS' |
ACCESS_FINE_LOCATION | 'android.permission.ACCESS_FINE_LOCATION' |
ACCESS_COARSE_LOCATION | 'android.permission.ACCESS_COARSE_LOCATION' |
RECORD_AUDIO | 'android.permission.RECORD_AUDIO' |
READ_PHONE_STATE | 'android.permission.READ_PHONE_STATE' |
CALL_PHONE | 'android.permission.CALL_PHONE' |
READ_CALL_LOG | 'android.permission.READ_CALL_LOG' |
WRITE_CALL_LOG | 'android.permission.WRITE_CALL_LOG' |
ADD_VOICEMAIL | 'com.android.voicemail.permission.ADD_VOICEMAIL' |
USE_SIP | 'android.permission.USE_SIP' |
PROCESS_OUTGOING_CALLS | 'android.permission.PROCESS_OUTGOING_CALLS' |
BODY_SENSORS | 'android.permission.BODY_SENSORS' |
SEND_SMS | 'android.permission.SEND_SMS' |
RECEIVE_SMS | 'android.permission.RECEIVE_SMS' |
READ_SMS | 'android.permission.READ_SMS' |
RECEIVE_WAP_PUSH | 'android.permission.RECEIVE_WAP_PUSH' |
RECEIVE_MMS | 'android.permission.RECEIVE_MMS' |
READ_EXTERNAL_STORAGE | 'android.permission.READ_EXTERNAL_STORAGE' |
WRITE_EXTERNAL_STORAGE | 'android.permission.WRITE_EXTERNAL_STORAGE' |
方法
方法名 | 参数 | 备注 |
---|---|---|
check() |
type |
- 返回一个包含权限状态的 Promise。有关特殊情况的说明,请参阅 iOS 备注 |
hasPermission() |
type |
- 返回权限状态。 |
request() |
type |
- 接受除 backgroundRefresh 之外的所有权限类型。如果当前状态是 undetermined ,则显示权限对话框并返回一个包含结果的状态的 Promise。否则,立即返回一个包含当前状态的 Promise。有关特殊情况的说明,请参阅 iOS 备注 |
checkPermissions() |
Object |
- 接受权限类型数组并返回一个将权限对象映射到状态的 Promise |
requestPermissions() |
[types] |
- 接受权限类型数组并请求多个权限 |
getTypes() |
none | - 返回一个有效权限类型的数组 |
openSettings() |
none | - (仅限iOS - 8.0及以上) 将用户切换到您的应用设置页面 |
canOpenSettings() |
none | - (仅限iOS) 返回一个布尔值,指示设备是否支持切换到设置页面 |
// request Read Contacts Permissions
function requestReadContacts() {
return new Promise((resolve, reject) => {
Permissions.check(Permissions.AndroidPermissions.READ_CONTACTS).then((result) => {
if (result[0] === 'authorized') {
resolve();
} else if (result[0] === 'restricted') {
reject();
} else {
Permissions.request(Permissions.AndroidPermissions.READ_CONTACTS).then((requestResult) => {
requestResult[0] === 'authorized' ? resolve() : reject();
}).catch(() => reject());
}
});
});
}
许可证
Apache许可证第2版,2004年1月