android - Phonegap:如果第一次被拒绝,请再次请求许可
问题描述
我正在使用 Phonegap cli-8.0.0 来构建我的应用程序。
当我的应用程序第一次加载时,它会提示用户 2 个权限 - 位置和通知,这很好。
现在,如果用户不小心点击了错误的按钮并拒绝插件,是否可以检查权限是否被拒绝?如果是这样提示一个新的请求?而不是用户必须进入手机设置>隐私等...以允许权限
使用的插件:
<plugin name="cordova-plugin-geolocation" spec="*" />
<plugin name="phonegap-plugin-push" spec="2.1.3" />
解决方案
你可以使用这个插件:https ://github.com/dpa99c/cordova-diagnostic-plugin
它使您能够检查用户是否拒绝授权并再次询问。
你可以这样做:
function requestLocationAuth(firstTime) {
cordova.plugins.diagnostic.requestLocationAuthorization(function(status){
var needRequest = false;
switch(status){
case cordova.plugins.diagnostic.permissionStatus.NOT_REQUESTED:
needRequest = true;
console.log("Permission not requested");
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED_ONCE: // Only Android
case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
needRequest = true;
console.log("Permission denied");
break;
case cordova.plugins.diagnostic.permissionStatus.GRANTED:
console.log("Permission granted always");
break;
case cordova.plugins.diagnostic.permissionStatus.GRANTED_WHEN_IN_USE:
console.log("Permission granted only when in use");
break;
}
if (needRequest && firstTime) {
requestLocationAuth(false);
}
}, function(error){
console.error(error);
}, cordova.plugins.diagnostic.locationAuthorizationMode.ALWAYS);
}
requestLocationAuth(true);