验证相机权限,安卓亲测有效
plus.android.requestPermissions(['android.permission.CAMERA'], function(e){ if(e.deniedAlways.length>0){ //权限被永久拒绝 // 弹出提示框解释为何需要权限,引导用户打开设置页面开启 console.log('权限被永久拒绝'+e.deniedAlways.toString()); } if(e.deniedPresent.length>0){ //权限被临时拒绝 // 弹出提示框解释为何需要权限,可再次调用plus.android.requestPermissions申请权限 console.log('权限被临时拒绝'+e.deniedPresent.toString()); } if(e.granted.length>0){ //权限被允许 console.log('权限被允许'+e.granted.toString()); } }, function(e){ console.log('Request Permissions error:'+JSON.stringify(e)); });
打开位置设置界面,安卓亲测有效
uni.showModal({ title: '提示', content: '请打开定位服务', success: ({ confirm, cancel }) => { if (confirm) { // android平台 if (uni.getSystemInfoSync().platform == 'android') { var Intent = plus.android.importClass('android.content.Intent'); var Settings = plus.android.importClass('android.provider.Settings'); var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); var main = plus.android.runtimeMainActivity(); main.startActivity(intent); // 打开系统设置GPS服务页面 } // ios平台 if (uni.getSystemInfoSync().platform == 'ios') { var UIApplication = plus.ios.import("UIApplication"); var application2 = UIApplication.sharedApplication(); var NSURL2 = plus.ios.import("NSURL"); var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION"); application2.openURL(setting2); plus.ios.deleteObject(setting2); plus.ios.deleteObject(NSURL2); plus.ios.deleteObject(application2); } } // 用户取消前往开启定位服务 if (cancel) { // do sth... } } });
参考链接:
安卓permission列表:https://blog.csdn.net/s13383754499/article/details/84281151
安卓跳转系统设置各界面:https://www.cnblogs.com/rchao/p/13666560.html
ios跳转个系统界面:https://www.cnblogs.com/lurenq/p/6189580.html (待验证)
定位权限:https://www.eoway.cn/article/1599470532.html
通知权限:https://www.cnblogs.com/Stalker24/p/12510672.html
安卓权限列表:https://www.cnblogs.com/chenjianbao/p/13589100.html
plus各模块:https://ask.dcloud.net.cn/article/121
验证安卓的权限情况,亲测有效:https://ask.dcloud.net.cn/article/38467
uniapp参考插件:https://ext.dcloud.net.cn/plugin?id=594