目錄
?android申請權限:
監聽用戶是否開啟權限或關閉權限:
退出app返回桌面:
?android申請權限:
?
首先在 manifest.json 內添加你所需要用到權限
添加權限插件
permission.js · 一次就好1/權限插件 - Gitee.comhttps://gitee.com/just-once-1/permission-plugin/blob/master/permission.js
App.vue 內引入該插件?
import permision from "你的插件路徑"
App.vue onShow 鉤子內 使用??permision.requestAndroidPermission 調用申請該權限
permision.requestAndroidPermission("android.permission.RECORD_AUDIO")?
permision.requestAndroidPermission("android.permission.你的權限名")?? ,
注意你的權限名?必須一致和 manifest.json 內配置的權限名一致
監聽用戶是否開啟權限或關閉權限:
permission.js 權限插件內??requestAndroidPermission 方法可以監聽到用戶是拒絕權限 還是 關閉權限 還是 永久拒絕權限
function requestAndroidPermission(permissionID) {return new Promise((resolve, reject) => {plus.android.requestPermissions([permissionID], // 理論上支持多個權限同時查詢,但實際上本函數封裝只處理了一個權限的情況。有需要的可自行擴展封裝function (resultObj) {var result = 0;for (var i = 0; i < resultObj.granted.length; i++) {var grantedPermission = resultObj.granted[i];console.log('已獲取的權限:' + grantedPermission);result = 1}for (var i = 0; i < resultObj.deniedPresent.length; i++) {var deniedPresentPermission = resultObj.deniedPresent[i];console.log('拒絕本次申請的權限:' + deniedPresentPermission);if (("android.permission.READ_PHONE_STATE" == deniedPresentPermission)) {console.log(`拒絕了電話權限`)plus.runtime.quit()}result = 0}for (var i = 0; i < resultObj.deniedAlways.length; i++) {var deniedAlwaysPermission = resultObj.deniedAlways[i];console.log('永久拒絕申請的權限:' + deniedAlwaysPermission);result = -1}resolve(result);// 若所需權限被拒絕,則打開APP設置界面,可以在APP設置界面打開相應權限// if (result != 1) {// gotoAppPermissionSetting()// }},function (error) {console.log('申請權限錯誤:' + error.code + " = " + error.message);resolve({code: error.code,message: error.message});});});
}
退出app返回桌面:
安卓端退出應用程序:
plus.runtime.quit();
蘋果端退出應用程序:
const threadClass = plus.ios.importClass("NSThread");const mainThread = plus.ios.invoke(threadClass, "mainThread");plus.ios.invoke(mainThread, "exit");