Каковы правила, по которым "X хотел бы использовать ваше текущее местоположение" на iPhone?
Использование определения местоположения на iPhone запускает "X хочет использовать ваше текущее местоположение" - "Не разрешать" / "ОК". В документации CLLocationManager указано:
"Пользователь имеет возможность запретить приложениям доступ к данным службы местоположения. Во время первоначального использования приложения базовая структура ядра предлагает пользователю подтвердить, что использование службы определения местоположения является приемлемым. Если пользователь отрицает запрос, объект CLLocationManager сообщает о соответствующей ошибке его делегату во время будущих запросов.
Я обнаружил, что "начальное использование" будет два раза, если вы нажмете "ОК", чтобы разрешить услуги определения местоположения. С третьего раза iPhone запомнит ваши настройки для всех будущих применений приложения.
Однако пользователь, нажимая "Не разрешать" , будет постоянно беспокоиться каждый раз, когда часть приложения пытается использовать службы определения местоположения. Я пробовал по крайней мере 15 раз в своем собственном приложении и добавил "Не разрешаю" еще больше в "Официальном мобильном зрительном руководстве Vancouver 2010". Это крайне раздражает пользователей, которые не хотят использовать эту функцию.
Мои вопросы:
- Для всех приложений iPhone попросит два раза и запомнит настройку, если вы нажмете "ОК". Правильное ли это наблюдение?
- Есть ли ограничение на количество попыток iPhone будет продолжать спрашивать, попадаете ли вы "Не разрешать" , или это никогда не помнится? Как вы справляетесь с этим? Поскольку locationManager: didFailWithError: уведомлен, я думаю, он может каждый раз увеличивать свойство счетчика и упорствовать в этом. При следующем использовании приложения этот параметр проверяется в моем собственном коде. Если counter >= 2, не используйте расположение ядра.
- Единственный способ, который я обнаружил, чтобы удалить параметр "ОК", как только его помнят, - это сбросить его для ВСЕХ приложений в целом → Reset → Предупреждения о местоположении. Есть ли способ сделать это только для одного приложения или из моего собственного кода?
Ответы
Ответ 1
-
Да, он всегда будет просить вас дважды. Вид странного и неинтуитивного имхо. Я понимаю, что это на случай, если вы нажмете неправильную кнопку в первый раз. После этого предполагается, что вы знаете, что хотели.
-
Я нашел следующее в примере LocateMe:
"Не разрешать" в двух последующих запусках приложений - это то же самое, что сказать "никогда не разрешать". но я также читал, что другие люди видят то же поведение, что и вы. Может быть, изменение в недавнем обновлении ОС? В любом случае, ваш подход звучит разумно.
-
Я не верю, что вы можете reset только для одного приложения, извините.
Ответ 2
Теперь вы можете установить или отключить одно приложение в настройках в разделе Общие, службы определения местоположения. Возможно, введен в 4.0?
И если вы являетесь зарегистрированным разработчиком, вы можете проверить различия API для последней беты. Возможно, они улучшили обработку ошибок.