Geolocation.requestPermission () работает только один раз - PullRequest
0 голосов
/ 26 марта 2019

У меня есть приложение, которому нужно запрашивать постоянный доступ к разрешению геолокации (также в фоновом режиме) для сбора данных.При запуске приложений я делаю проверку разрешений следующим образом (упрощенно)

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 Ответ

1 голос
/ 26 марта 2019

Система будет запрашивать разрешение только один раз, даже если вы удалите свое приложение и заново установите его, похоже, что оно имеет системный кэш, попробуйте перейти к Настройки -> Общие -> Сброс -> Сбросить местоположение &Конфиденциальность

...