Каковы правила «X хотел бы использовать ваше текущее местоположение» на iPhone? - PullRequest
13 голосов
/ 18 февраля 2010

Использование функции определения местоположения на iPhone вызывает «X хотел бы использовать ваше текущее местоположение» - «Не разрешать» / «ОК».В документации CLLocationManager указано:

"У пользователя есть возможность запретить приложению доступ к данным службы определения местоположения. Во время первоначального использования приложением базовая структура местоположенияпредлагает пользователю подтвердить, что использование службы определения местоположения приемлемо. Если пользователь отклоняет запрос, объект CLLocationManager сообщает о соответствующей ошибке своему делегату во время будущих запросов. "

Я обнаружил, что" первоначальное использование "былодва раза, если вы нажмете «ОК», чтобы разрешить услуги определения местоположения.С третьего раза iPhone будет помнить ваши настройки для всех будущих применений приложения.

Однако пользователь, нажимающий «Не разрешать», будет постоянно беспокоиться каждый раз, когда часть приложения пытаетсяиспользует службы определения местоположения.Я пробовал как минимум 15 раз в своем приложении и нажал «Не разрешать» еще больше в «Ванкувере 2010 - официальное руководство для мобильных зрителей».Это очень раздражает пользователей, которые не хотят использовать эту функцию.

Мои вопросы:

  • Для всех приложений iPhone спросит два раза и запомнит настройку, если вы нажмете «ОК».Это правильное наблюдение?
  • Существует ли ограничение на количество попыток, которые iPhone продолжит спрашивать, нажимаете ли вы "Не разрешать", или это никогда не запоминается?Как вы справляетесь с этим?Поскольку locationManager: didFailWithError: уведомлено, я полагаю, что оно может каждый раз увеличивать свойство счетчика и сохранять его.При следующем использовании приложения этот параметр проверяется в моем собственном коде.Если счетчик> = 2, не используйте местоположение ядра.
  • Единственный способ, как я обнаружил, чтобы удалить настройку «ОК» после запоминания, это сбросить его для ВСЕХ приложений в общем -> Сброс -> Предупреждения о местоположении,Есть ли способ сделать это только для одного приложения или из моего собственного кода?

Ответы [ 2 ]

5 голосов
/ 18 февраля 2010
  1. Да, вас всегда спросят дважды. Вид странного и не интуитивного имхо. Насколько я понимаю, это в том случае, если вы нажмете не ту кнопку в первый раз. После этого предполагается, что вы знаете, что хотели.

  2. В примере LocateMe я нашел следующее:

    «Не разрешать» при двух последовательных запусках приложений - это то же самое, что говорить «никогда не разрешать». но я также читал, что другие люди видят то же поведение, что и вы. Может быть, изменение в недавнем обновлении ОС? В любом случае, ваш подход звучит разумно.

  3. Я не верю, что вы можете выполнить сброс только для одного приложения, извините.

1 голос
/ 14 октября 2010

Теперь вы можете установить или отменить установку одного приложения в настройках в разделе «Общие», «Службы определения местоположения». Вероятно, введено в 4.0?

И если вы являетесь зарегистрированным разработчиком, вы можете проверить API-версию последней беты. Они могли бы улучшить обработку ошибок.

...