ionic $cordovaGeolocation всегда запрашивает разрешение на доступ к местоположению

Я использую ionic и упаковщик геолокации ngCordova.

Вот фрагмент из контроллера с помощью плагина:

  $ionicPlatform.ready(function () {
                $cordovaGeolocation
                    .getCurrentPosition({timeout: 10000, enableHighAccuracy: false})
                    .then(permissionGranted)
                    .catch(permissionNotGranted)
                    .then(loadGmap)
                    .catch(handleGmapLoadError);
            });

Я запускаю свое приложение, используя:

ionic run ios --device

Когда приложение появляется, меня спрашивают разрешение на доступ к местоположению телефона, как и ожидалось. Я подтверждаю это, и мой контроллер загружает мое местоположение в Google Maps. Я вижу, что разрешение, установленное в моих настройках ios, отражает сделанные настройки. когда я открываю приложение во второй раз, оно снова спрашивает. Это было неожиданное поведение.

Большинство приложений не спрашивают снова и снова. Кто-нибудь еще видел такое поведение и знает, что мне делать?

1 ответ

Вы можете попытаться добавить разрешение в конфигурационном файле (app/platform /android/res/xml/config.xml)<feature name="Geolocation"> <param name="android-package" value="org.apache.cordova.GeoBroker" /> </feature>

и в (app/platform /android/AndroidManifest.xml)

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

Другие вопросы по тегам