Skip to main content

Что нужно знать про разрешения

На что обратить внимание

  1. Запрашивайте разрешение только тогда, когда оно действительно необходимо
    • Если все необходимые приложению разрешения запрашивать сразу при запуске, то, скорее всего, юзер отклонит большую часть, потому что ему еще не понятно, зачем все они нужны.
    • Запрашивайте нужное разрешение перед его использованием - это позволит юзеру понять, для чего оно нужно
  2. Старайтесь не блокировать работу приложения при отсутствии каких-нибудь разрешений
    • По возможности, добавьте другой способ использовать тот функционал приложения, для которого требуются разрешения (нет доступа к геолокации - используйте ввод адреса вручную)
  3. Объясните юзеру, для чего нужны разрешения
    • Если весь смысл приложения в том, чтобы использовать какое-либо разрешение (геолокацию, доступ к файлам, , соцсеть для публикации фото и тд) то объясняйте юзеру, зачем нужно то или иное разрешение до его запроса (onboarding - картинки с текстом и пояснениями)
  4. Не объединяйте в группы непохожие разрешения
    • Запрос разрешений можно объединить, чтобы получить сразу все. Делать это следует только в том случае, если они относятся к одному логическому блоку (чтение и запись в файлов, доступ к камере и галерее устройства и тд).
    • Не стоит объединять запрос таких разрешений: доступ к файлам, геолокации, микрофону, камере, контактам.
  5. Помните, что разрешение может быть отозвано
    • Юзер может отозвать разрешение в настройках приложения в любой момент, поэтому нужно после каждого переоткрытия приложения проверять актуальное значение разрешения. Актуальность разрешения проверяйте с помощью системы, не пытайтесь сохранить это значение.
  6. Нельзя бесконечно запрашивать разрешения
    • Если юзер отказался предоставлять разрешения на iOS, то значение разрешения станет DeniedAlways - это значит что показывать системный запрос разрешения больше нельзя
    • На Android значение разрешения перейдет в DeniedAlways, если:
      • Юзер не предоставит разрешение и поставит галочку "Не показывать больше"
      • Юзер не предоставит разрешения два раза подряд
    • Из состояния DeniedAlways перейти в Granted можно только изменив разрешение в настройках приложения, поэтому необходимо реализовать переход пользователя в настройки приложения для изменения разрешений