Использование GCM на Android и iOS без полезной информации уведомления

Я хочу реализовать push-уведомления на Android и iOS с помощью облачных сообщений Google.

Я не хочу использовать ключ notification в моей полезной нагрузке, потому что поведение Android не является идеальным. На Android я бы предпочел, чтобы мой приемник всегда запускался с помощью полезной нагрузки data, и я могу сам построить notification, используя NotificationCompat. Если вы используете полезную нагрузку notification на Android, вы не можете управлять стилем уведомления, например.

Однако, если я отправляю только полезную нагрузку data, я думаю, что мое приложение iOS не получит push, если оно зашифровано - убито, никогда не запускается с момента перезагрузки устройства и т.д. Я думаю, что флаг content_available для GCM который может вызвать нажатие в любом случае?

Я, на iOS, способен дублировать поведение Android, всегда выполняющего мой код в приложении, после уведомления? Я был бы прав, строя свое собственное уведомление iOS на основе полезной нагрузки GCM data и, возможно, используя что-то вроде UILocalNotification, но из того, что я читаю, iOS требует, чтобы полезная нагрузка notification существовала, чтобы убедиться нажатие всегда принимается пользователем.

Могу ли я получить такой контроль на iOS?

Ответ 1

Из моих исследований кажется, что вы не можете избежать использования полезной нагрузки notification. Тем не менее, вы можете избавиться от поведения Android по умолчанию для автоматического создания уведомления, если вместо создания MyGcmListenerService, который расширяет GcmListenerService, вы создаете свой собственный GcmListenerService и расширяете простой старый Service.

Ответ 2

Вы должны отключить флаг content_available до false, чтобы он работал на Ios, как ожидалось, и обеспечивал полный контроль над android,

Источник: - Я работал над Push Notification на Android и IOS недавно