Geolocation.requestPermission() 只工作一次
Geolocation.requestPermission() only works once
我有一个应用程序需要请求永久访问地理定位权限(也在后台)以收集数据。
在应用程序启动时,我会像这样进行权限检查(简化)
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);
};
应用程序第一次启动并调用并运行。
现在,如果我退出应用程序,然后将权限更改为 "never",然后重新启动应用程序,我可以看到
_geo.requestPermission();
被调用,但没有任何响应,我也没有看到 iOS 权限对话框。
有什么想法吗?非常感谢!
即使你卸载你的应用程序并重新安装它,系统也只会请求一次权限,看起来它有系统级缓存,
尝试转到设置 -> 通用 -> 重置 -> 重置位置和隐私
我有一个应用程序需要请求永久访问地理定位权限(也在后台)以收集数据。 在应用程序启动时,我会像这样进行权限检查(简化)
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);
};
应用程序第一次启动并调用并运行。 现在,如果我退出应用程序,然后将权限更改为 "never",然后重新启动应用程序,我可以看到
_geo.requestPermission();
被调用,但没有任何响应,我也没有看到 iOS 权限对话框。
有什么想法吗?非常感谢!
即使你卸载你的应用程序并重新安装它,系统也只会请求一次权限,看起来它有系统级缓存, 尝试转到设置 -> 通用 -> 重置 -> 重置位置和隐私