Как реализовать поведение приложения, когда пользователь отключает уведомление в настройках устройства для iOS с включенным пролистыванием Firebase FCM?

Если я включу FCM swizzling в iOS, я обнаружу, что токен FCM все еще существует, даже когда пользователь отключает настройку уведомления устройства для моего приложения (вероятно, сохраняется в данных приложения).

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

У меня есть 2 вопроса:

  1. Нужно ли мне создавать переключатель настроек уведомлений в моем приложении, чтобы пользователь мог включить или отключить уведомление?
  2. Если мне нужно сделать № 1, как мне вызвать регистрацию FCM вручную? Я знаю, что этот API [FIRApp configure] все сделает автоматически.

person darkGreyWhite    schedule 03.10.2016    source источник


Ответы (1)


Я думаю, что следующие указатели должны помочь вам ответить на вопрос.

  1. Как правило (независимо от того, какой пакет SDK вы используете), создание и поддержка deviceToken полностью отделены от запроса разрешений и ответа на этот запрос. Существуют варианты использования, такие как тихие push-уведомления, которые можно использовать для отправки push-уведомлений на устройство, даже не запрашивая у пользователя разрешения (ну, эти push-уведомления вызывают ваше приложение для обновления данных, но не могут ничего отображать в пользовательском интерфейсе).

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

Итак, основываясь на приведенных выше данных, чтобы ответить на ваш вопрос,

Нужно ли мне создавать переключатель настроек уведомлений в моем приложении, чтобы пользователь мог включить или отключить уведомление?

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

Если мне нужно сделать № 1, как мне вызвать регистрацию FCM вручную? Я знаю, что этот API [конфигурация FIRApp] сделает все автоматически.

У меня нет опыта использования Firebase напрямую, но в основном вам не нужно ничего сообщать Firebase, потому что у него уже есть токен, и он может отправлять push-уведомления на это устройство в любое время, следующий push-уведомление, которое приходит после того, как пользователь изменяет настройка будет автоматически отображаться в соответствии с последними предпочтениями пользователя.

person Saumitra R. Bhave    schedule 27.05.2017