Можно ли запрашивать доступ к календарю и push-уведомлениям при запуске приложения в iOS?

В моем приложении мне нужен доступ как к календарю, так и к уведомлениям. Я знаю, что это не лучший подход, чтобы попросить пользователя принять кучу запросов при первом запуске приложения, но в настоящее время невозможно переосмыслить дизайн приложения. Итак, мой вопрос на этом этапе: одобрит ли App Store мое приложение, если я сделаю эти два запроса один за другим при запуске приложения? Или я нарушу некоторые важные правила Apple?

Обновить

Найдено https://developer.apple.com/ios/human-interface-guidelines/app-architecture/requesting-permission/

Неясно, может ли мое приложение быть отклонено, если я сделаю 2 запроса при запуске.


person schmidt9    schedule 20.02.2018    source источник
comment
По вашей же ссылке: Запрашивайте персональные данные только тогда, когда они явно нужны вашему приложению. Запрашивайте разрешение при запуске только тогда, когда это необходимо для работы вашего приложения. Возможно, вам не откажут за это, но я могу гарантировать вам, что пользователи не предоставят вам доступ к личным данным, если вы попросите их об этом при запуске вместо того, чтобы перевести вызов на нажатие кнопки.   -  person Dare    schedule 20.02.2018
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что никто за пределами Apple не может дать авторитетный совет о том, отклонит ли Apple что-то. Вы уже заметили, что это плохой пользовательский опыт. Плохой пользовательский опыт является достаточной причиной для отказа. Никто не может сказать вам, будет ли оно будет отклонено. Если он будет принят, обновления могут быть отклонены. Приложения иногда даже задним числом отклоняются. На вопрос, можно ли отклонить мое приложение, ответ всегда положительный.   -  person Rob Napier    schedule 20.02.2018


Ответы (2)


SO не является подходящим форумом для этого, так как вы не получите авторитетного ответа от группы проверки приложений Apple о том, что будет или не будет отклонено — только предположения и анекдотический опыт других разработчиков. Это сказало...

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

В основном существует три способа обработки разрешений на конфиденциальность/уведомления в приложении:

  1. Вызывайте системные API, которые приводят к запросам разрешений во время запуска приложения. (Либо условно при первом запуске, либо повсеместно, полагаясь на ОС, чтобы убедиться, что она запрашивает только один раз.)

    Это может раздражать пользователей — может быть непонятно, почему приложение запрашивает разрешение на то или иное, и они могут получить несколько запросов на разрешение подряд (если приложению нужна камера, уведомления, контакты и что-то еще).

  2. Вызывайте API, связанные с разрешениями, только по мере необходимости; например если у вас есть приложение для социальных сетей, в котором пользователи публикуют текст и иногда используют камеру для публикации изображений/видео, не запрашивайте разрешение камеры, пока пользователь не попробует камеру в первый раз. (Большинство API-интерфейсов, требующих разрешения, дают вам два способа справиться с этим: либо вы можете явно проверить / запросить разрешение, либо вы можете просто начать использовать API, и система автоматически покажет предупреждение о разрешениях.)

    Это проясняет для пользователя, для чего именно требуется разрешение, но все же прерывает его рабочий процесс. И это не всегда возможно в случаях, когда разрешение дается на то, что приложение делает без действий пользователя (например, на уведомления).

  3. Если у вас есть какое-то вводное введение/тур при первом запуске вашего приложения, попросите разрешения затем, шаг за шагом. Например, при первом запуске обучающего приложения пользователь может пролистать несколько экранов с объяснением функций, одним из которых является «Вы хотите, чтобы уведомления напоминали вам об учебе?», а другим — «Хотите ли вы использовать камеру для создания свои собственные карточки?».

    Это помогает избежать проблемы «кучи неожиданных подсказок» из № 1, но также не позволяет пользователю сразу попасть в ваше приложение.

Для всего этого (и для других вариантов, которые вы можете иногда увидеть) есть компромиссы, поэтому подумайте о точке зрения пользователя и выберите то, что лучше всего подходит для вашего приложения.

person rickster    schedule 20.02.2018

Возможно, вы могли бы найти умный способ запрашивать уведомления через первый запуск в процессе посадки.

Например: https://github.com/juanpablofernandez/SwiftyOnboard

person achi    schedule 20.02.2018