2017-02-21 54 views
1

Я пытаюсь внедрить подсистему обмена сообщениями в многоплатформенном приложении для веб-и мобильных устройств, используя Firebase Cloud Messaging (FCM). FCM позволяет отправлять сообщения в двух форматах: Уведомления и данные.Firebase cloud messaging: можно отправлять сообщения данных при разрешении = заблокировано?

Уведомления отображаются на платформе, например. в небольшом всплывающем окне на веб-платформе или добавлен в список уведомлений на вашем мобильном телефоне.

Данные сообщения обрабатываются вашим приложением.

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

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

+1

Я думаю, что это по дизайну, поэтому следовало ожидать. Разрешения здесь - дать власть/контроль пользователям о том, что происходит на их устройстве. Это не выглядит хорошо, если приложения, которые заблокированы, чтобы все еще иметь возможность отправлять уведомления, это вроде как делает разрешения бесполезными, если это произойдет. –

+1

Да, спасибо за ваш комментарий AL. Наверное, это имеет смысл. Я рассматривал FCM как более общую инфраструктуру обмена сообщениями, с возможностью подключения к уведомлениям api целевой платформы. По-видимому, это не вариант, а неотъемлемая его часть. Согласитесь? –

+0

FCM - это, в основном, и просто услуга push-уведомления. Так что да, это неотъемлемая часть. –

ответ

2

В контексте iOS разрешения необходимы только для show push-уведомления в центре уведомлений.

UIApplication.shared.registerForRemoteNotifications() позволит вам извлечь токен устройства, но не будет уведомлять о разрешении. На этом этапе вы можете получать push-уведомления, но вы не будете см., если вы не распечатаете их в didReceiveRemoteNotification, или в случае сообщений данных Firebase, didReceive remoteMessage.

Чтобы показывать уведомления за пределами приложения, вам необходимо позвонить UIApplication.shared.registerUserNotificationSettings(settings), который будет представлять предупреждение.