Phonegap:如果第一次被拒绝,则再次请求许可

时间:2019-07-23 14:23:10

标签: android ios permissions phonegap prompt

我正在使用Phonegap cli-8.0.0来构建我的应用。

当我的应用程序首次加载时,它会提示用户具有2个权限-位置和通知都可以。

现在,如果用户不小心点击了错误的按钮并拒绝了该插件,以检查该权限是否被拒绝?如果是这样,则提示新请求?而不是用户必须进入电话设置>隐私等...以允许权限

使用的插件:

{{1}}

1 个答案:

答案 0 :(得分:0)

您可以使用此插件: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);