请求权限地理定位插件cordova

请求权限地理定位插件cordova,cordova,geolocation,Cordova,Geolocation,我想知道在第一次拒绝使用cordova插件后,是否有办法再次向用户询问权限位置对话框: 谢谢您可以使用,例如: var deniedCount = 0; function onError(error){ console.error("The following error occurred: "+error); } function evaluateAuthorizationStatus(status){ switch(status){ case cordov

我想知道在第一次拒绝使用cordova插件后,是否有办法再次向用户询问权限位置对话框:

谢谢

您可以使用,例如:

var deniedCount = 0;

function onError(error){
    console.error("The following error occurred: "+error);
}

function evaluateAuthorizationStatus(status){
    switch(status){
       case cordova.plugins.diagnostic.permissionStatus.NOT_REQUESTED:
           console.log("Permission not requested");
           requestAuthorization();
           break;
       case cordova.plugins.diagnostic.permissionStatus.DENIED:
           console.log("Permission denied");
           if(deniedCount < 3){
              deniedCount++;
              requestAuthorization();
           }else{
              // Are we sure we want to hassle the user more than 3 times?
           }
           break;
       case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
           console.log("Permission permanently denied");
           navigator.notification.confirm(
                "This app has been denied access to your location and it really needs it function properly. Would you like to switch to the app settings page to allow access?", 
                function (i) {
                    if (i === 1) {
                        cordova.plugins.diagnostic.switchToSettings();
                    }
                }, "Location access denied", ['Yes', 'No']);
           break;
       case cordova.plugins.diagnostic.permissionStatus.GRANTED:
           console.log("Permission granted always");
           // Yay! use location
           break;        
   }
}

function requestAuthorization(){
    cordova.plugins.diagnostic.requestLocationAuthorization(evaluateAuthorizationStatus, onError);
}

function checkAuthorization(){
    cordova.plugins.diagnostic.getLocationAuthorizationStatus(evaluateAuthorizationStatus, onError);
}

checkAuthorization();
var deniedCount=0;
函数onError(错误){
console.error(“发生以下错误:“+错误”);
}
功能评估授权状态(状态){
开关(状态){
未请求案例cordova.plugins.diagnostic.permissionStatus.NOT_:
console.log(“未请求权限”);
请求授权();
打破
案例cordova.plugins.diagnostic.permissionStatus.DENIED:
console.log(“权限被拒绝”);
如果(拒绝计数<3){
deniedCount++;
请求授权();
}否则{
//我们确定要麻烦用户3次以上吗?
}
打破
案例cordova.plugins.diagnostic.permissionStatus.DENIED\u始终:
console.log(“权限永久拒绝”);
navigator.notification.confirm(
“此应用已被拒绝访问您的位置,它确实需要它正常运行。是否切换到应用设置页面以允许访问?”,
职能(一){
如果(i==1){
插件。诊断。开关设置();
}
},“位置访问被拒绝”,“是”,“否]);
打破
案例cordova.plugins.diagnostic.permissionStatus.grated:
log(“始终授予的权限”);
//耶!使用位置
打破
}
}
函数requestAuthorization(){
cordova.plugins.diagnostic.requestLocationAuthorization(evaluateAuthorizationStatus,onError);
}
函数checkAuthorization(){
cordova.plugins.diagnostic.getLocationAuthorizationStatus(evaluateAuthorizationStatus,OneError);
}
检查授权();