Синий баннер "% MyApp% использует ваше местоположение" для приложения, которое использует службы определения местоположения только тогда, когда активен
В моем приложении я обновляю местоположение пользователя каждый раз, когда приложение становится активным. Я останавливаю CLLocationManager
после получения обновленного местоположения или в applicationWillResignActive:
.
В Info.plist
существует NSLocationWhenInUseUsageDescription
с соответствующим описанием.
Если приложение активировано, а затем сразу же перемещено на задний план, синий баннер говорит, что "% MyApp% - это использование вашего местоположения" отображается менее секунды. Этот баннер скрывается, как только вызывается applicationWillResignActive:
.
Я заметил ту же проблему в Картах Google, но не в Apple Maps.
Есть ли способ полностью избавиться от этого баннера? Есть ли что-нибудь еще, что я должен сделать, чтобы сделать iOS счастливым? Я не хочу, чтобы он искажал моих пользователей и не позволял им использовать классные функции, требующие локализации.
Ответы
Ответ 1
Возможно, вы выбрали местоположение в качестве фонового режима в своем info.plist. Если вы удалите это, синяя полоса больше не появится.
Или вы можете использовать requestAlwaysAuthorization
вместо requestWhenInUseAuthorization
на CLLocationManager
(и предоставить связанный NSLocationAlwaysUsageDescription
в файле info.plist), а затем он также не появится.
В моем случае мое приложение в некоторых случаях использует местоположение в фоновом режиме, и я хотел бы, чтобы синяя полоса появлялась, когда это так. Но я не хочу, чтобы он появлялся при выходе из приложения без места в фоновом режиме. Насколько я знаю, этого невозможно достичь (я спросил об этом здесь).
РЕДАКТИРОВАТЬ. Обратите внимание, что, начиная с iOS-9, вы можете убедиться, что синяя полоса появляется только тогда, когда пользователь действительно хочет, чтобы приложение использовало местоположение в фоновом режиме. См. этот ответ.
Ответ 2
Если вы хотите получить доступ к местоположению пользователя с помощью CLLocationManager
, приложение должно будет показать этот баннер, и пользователю нужно будет нажать "Разрешить". Если они этого не сделают, ваш менеджер местоположений не сможет определить местоположение пользователя.
Apple Maps - это особый случай, потому что это приложение первой стороны.