Geolocation.requestPermission()仅工作一次

时间:2019-03-26 01:17:53

标签: ios actionscript-3 air

我有一个应用程序需要请求永久访问地理位置权限(也在后台)以收集数据。 在应用程序启动时,我会像这样进行权限检查(简化)

private static function check():void{
    if (Geolocation.permissionStatus == PermissionStatus.GRANTED){
        onPermGranted();
    }else{

        _geo = new Geolocation();
        _geo.addEventListener(PermissionEvent.PERMISSION_STATUS, onPermission );
        try {
             _geo.locationAlwaysUsePermission = true;
             _geo.requestPermission();
        } catch(e:Error){
              onError(e);
        }
    }
};
private static function onPermission(e:PermissionEvent):void{
    trace("GeolocationUtil::onPermission: "+e.status);
};

首次启动应用程序,它将被调用并运行。 现在,如果我退出该应用程序,然后将权限更改为“从不”,然后重新启动该应用程序,就可以看到

_geo.requestPermission();

被调用,但没有任何响应,我也没有得到iOS权限对话框。

有什么想法吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

即使您卸载应用并再次重新安装,该系统也只会询问一次权限,看起来它具有系统级缓存, 尝试转到设置->常规->重置->重置位置和隐私