请求使用Cordova地理位置插件的权限。

4
1个回答

7
你可以使用cordova-diagnostic-plugin来实现此功能,例如:

cordova-diagnostic-plugin

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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接