harmony-utils之PermissionUtil,授權(quán)相關(guān)工具類
harmony-utils 簡介與說明
[harmony-utils]一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實(shí)用工具類,致力于助力開發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項(xiàng)、拍照、相冊、掃碼、文件、日志、異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機(jī)、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開發(fā)需求。
[picker_utils 是harmony-utils拆分出來的一個子庫,包含 PickerUtil、PhotoHelper、ScanUtil。
下載安裝ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils
//全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
AppUtil.init(this.context);
}
API方法與使用
requestPermissionsEasy 申請授權(quán),拒絕后并二次向用戶申請授權(quán)(申請權(quán)限,建議使用該方法)
let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA', 'ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissionsEasy(p).then((result) = > {
ToastUtil.showToast(`申請授權(quán),結(jié)果:${result}`);
})
checkPermissions 校驗(yàn)當(dāng)前是否已經(jīng)授權(quán)
let p: Permissions = 'ohos.permission.CAMERA'; //相機(jī)
PermissionUtil.checkPermissions(p).then((result) = > {
ToastUtil.showToast(`檢測是否授權(quán),結(jié)果:${result}`);
})
checkRequestPermissions 校驗(yàn)是否授權(quán)后并申請授權(quán)
let p: Permissions = 'ohos.permission.CAMERA'; //相機(jī)
PermissionUtil.checkRequestPermissions(p).then((grant) = > {
ToastUtil.showToast(`檢測并申請授權(quán),結(jié)果:${grant}`);
if (!grant) {
WantUtil.toAppSetting(); //拒絕權(quán)限,跳轉(zhuǎn)APP設(shè)置頁面
}
})
requestPermissions 申請授權(quán)
let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA','ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissions(p).then((grant) = > {
if (grant) {
ToastUtil.showToast(`申請授權(quán),已通過...`);
} else { //拒絕權(quán)限,二次向用戶申請授權(quán)
PermissionUtil.requestPermissionOnSettingEasy(p).then((result) = > {
ToastUtil.showToast(`申請授權(quán),結(jié)果:${result}`);
});
}
})
requestPermissionOnSetting 二次向用戶申請授權(quán)(單個權(quán)限 或 讀寫權(quán)限組,建議使用該方法)
let ps: Permissions[] = ['ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.WRITE_IMAGEVIDEO'];
PermissionUtil.requestPermissions(ps).then((result) = > {
if (result) {
ToastUtil.showToast(`最佳使用案例授權(quán),已通過...`);
} else {
PermissionUtil.requestPermissionOnSetting(ps).then((grant) = > {
ToastUtil.showToast(`最佳使用案例,結(jié)果:${grant}`);
})
}
})
requestPermissionOnSettingEasy 二次向用戶申請授權(quán)(多個權(quán)限建議使用該方法)
let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA','ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissions(p).then((grant) = > {
if (grant) {
ToastUtil.showToast(`申請授權(quán),已通過...`);
} else { //拒絕權(quán)限,二次向用戶申請授權(quán)
PermissionUtil.requestPermissionOnSettingEasy(p).then((result) = > {
ToastUtil.showToast(`申請授權(quán),結(jié)果:${result}`);
});
}
})
requestGlobalSwitch 用于UIAbility/UIExtensionAbility拉起全局開關(guān)設(shè)置彈框。部分情況下,錄音、拍照等功能禁用,應(yīng)用可拉起此彈框請求用戶同意開啟對應(yīng)功能。如果當(dāng)前全局開關(guān)的狀態(tài)為開啟,則不拉起彈框
PermissionUtil.requestGlobalSwitch(abilityAccessCtrl.SwitchType.LOCATION).then((result) = > {
ToastUtil.showToast(`申請結(jié)果:${result}`);
}).catch((err: BusinessError) = > {
ToastUtil.showToast(err.message);
LogUtil.error(err);
});
創(chuàng)作不易,請給童長老點(diǎn)贊
審核編輯 黃宇
-
Harmony
+關(guān)注
關(guān)注
0文章
108瀏覽量
3027
發(fā)布評論請先 登錄
評論