1.插件安装
ionic plugin add cordova.plugins.diagnostic
2.代码使用
这里以请求存储设备和相机访问权限为例
function requestPermissions() {
function requestPermission(permissions) {
window.cordova.plugins.diagnostic.requestRuntimePermissions(function (statusObject, err) {
let statusArray = _.toArray(statusObject);
if (_.filter(statusArray, function (num) {
return num === window.cordova.plugins.diagnostic.runtimePermissionStatus.DENIED;
}).length > 0) { //拒绝授权
console.log("Permission denied - ask again");
$ionicPopup.alert({title: "应用需要此权限,请为应用程序添加此权限"}).then(function () {
requestPermission(permissions);
});
} else if (_.filter(statusArray, function (num) {
return num === window.cordova.plugins.diagnostic.runtimePermissionStatus.DENIED_ALWAYS;
}).length > 0) { //拒绝授权,不再出现授权提示
console.log("Permission permanently denied");
if (permissions === window.cordova.plugins.diagnostic.permissionGroups.STORAGE) {
$ionicPopup.alert({title: "应用被关闭存储设备权限,请为应用程序添加此权限,程序将自动关闭"}).then(function () {
navigator.app.exitApp();
});
} else {
$ionicPopup.alert({title: "应用被关闭相机权限,请为应用程序添加此权限,程序将自动关闭"}).then(function () {
navigator.app.exitApp();
});
}
} else {
console.log("Permission granted (or already granted) - call the plugin");
}
}, function (error) {
console.error("授权失败: " + error);
}, permissions);
}
let permissios = [].concat(window.cordova.plugins.diagnostic.permissionGroups.CAMERA).concat(window.cordova.plugins.diagnostic.permissionGroups.STORAGE);
requestPermission(permissios); //请求存储设备和相机访问权限
}
//在app.js 调用代码 run方法中调用
if (window.cordova.plugins.diagnostic) {
requestPermissions();
}