|
@@ -1,5 +1,8 @@
|
|
|
import store from '@/store'
|
|
|
-
|
|
|
+var isIos
|
|
|
+// #ifdef APP-PLUS
|
|
|
+isIos = (plus.os.name == "iOS")
|
|
|
+// #endif
|
|
|
/**
|
|
|
* 字符权限校验
|
|
|
* @param {Array} value 校验值
|
|
@@ -52,7 +55,7 @@ export function checkRole(value) {
|
|
|
|
|
|
|
|
|
// Android权限查询
|
|
|
-function requestAndroidPermission(permissionID) {
|
|
|
+export function requestAndroidPermission(permissionID) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
plus.android.requestPermissions(
|
|
|
[permissionID], // 理论上支持多个权限同时查询,但实际上本函数封装只处理了一个权限的情况。有需要的可自行扩展封装
|
|
@@ -73,11 +76,13 @@ function requestAndroidPermission(permissionID) {
|
|
|
console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
|
|
|
result = -1
|
|
|
}
|
|
|
- resolve(result);
|
|
|
+
|
|
|
// 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
|
|
|
- // if (result != 1) {
|
|
|
- // gotoAppPermissionSetting()
|
|
|
- // }
|
|
|
+ if (result != 1) {
|
|
|
+ gotoAppPermissionSetting()
|
|
|
+ }else{
|
|
|
+ resolve(result);
|
|
|
+ }
|
|
|
},
|
|
|
function(error) {
|
|
|
console.log('申请权限错误:' + error.code + " = " + error.message);
|
|
@@ -88,4 +93,30 @@ function requestAndroidPermission(permissionID) {
|
|
|
}
|
|
|
);
|
|
|
});
|
|
|
+}
|
|
|
+// 跳转到**应用**的权限页面
|
|
|
+export function gotoAppPermissionSetting() {
|
|
|
+ if (isIos) {
|
|
|
+ var UIApplication = plus.ios.import("UIApplication");
|
|
|
+ var application2 = UIApplication.sharedApplication();
|
|
|
+ var NSURL2 = plus.ios.import("NSURL");
|
|
|
+ // var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
|
|
|
+ var setting2 = NSURL2.URLWithString("app-settings:");
|
|
|
+ application2.openURL(setting2);
|
|
|
+
|
|
|
+ plus.ios.deleteObject(setting2);
|
|
|
+ plus.ios.deleteObject(NSURL2);
|
|
|
+ plus.ios.deleteObject(application2);
|
|
|
+ } else {
|
|
|
+ // console.log(plus.device.vendor);
|
|
|
+ var Intent = plus.android.importClass("android.content.Intent");
|
|
|
+ var Settings = plus.android.importClass("android.provider.Settings");
|
|
|
+ var Uri = plus.android.importClass("android.net.Uri");
|
|
|
+ var mainActivity = plus.android.runtimeMainActivity();
|
|
|
+ var intent = new Intent();
|
|
|
+ intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
|
|
+ var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
|
|
|
+ intent.setData(uri);
|
|
|
+ mainActivity.startActivity(intent);
|
|
|
+ }
|
|
|
}
|