Поддерживает ли FCM новый apns-push-type для iOS 13? - PullRequest
0 голосов
/ 02 октября 2019

В настоящее время у нас есть решение для отправки push-уведомлений из FCM в APNS, а затем в iOS. В связи с введением iOS13, APNS теперь требует apns-push-type в любой входящей полезной нагрузке, которая указывает, является ли это уведомлением о предупреждении, фоновым уведомлением или любым другим типом. Мне интересно, как добавить эту информацию в сообщение, отправленное в FCM.

В настоящее время мы используем pyFCM для отправки сообщений в FCM. И мы следуем за этой страницей в качестве ссылки: https://firebase.google.com/docs/cloud-messaging/http-server-ref

from pyfcm import FCMNotification
push_service = FCMNotification(api_key="XXXX")
registration_id = '<Token>'
data_message = {
    "Score": "3*1",
    "DeviceId": "XXXXXX",
}

# Background notification
result = push_service.notify_single_device(registration_id=registration_id,
                                       content_available=True,
                                       data_message=data_message)

# Alert notification
result = push_service.notify_single_device(registration_id=registration_id,
                                       message_title='Sample title',
                                       message_body='Sample body',
                                       data_message=data_message,
                                       )

Это прекрасно работает с существующим приложением iOS. Но для iOS 13 я не могу найти какое-либо место для указания типа apns-push-типа или любое эквивалентное поле, которое FCM преобразует в apns-push-type, которое будет отправлено в APNS.

Я знаю, что iOS 13 является относительно новой, поэтому все все еще работают над адаптацией к ней существующего решения. Надеюсь, кто-нибудь может дать мне некоторое представление о том, как использовать тип apns-push в моем существующем решении. Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

вы можете добавить эту опцию, используя 'extra_kwargs' в Уведомлении.

Добавить extra_kwargs = {"apns_push_type": "background"} для фонового уведомления.

# Background notification 
result = push_service.notify_single_device(registration_id=registration_id,
                                           content_available=True,
                                           data_message=data_message,
                                           low_priority=True,
                                           extra_kwargs={"apns_push_type": "background"})

Также пометьте приоритет фонового уведомления как низкий. Это делается путем отправки low_priority как true.

Для уведомлений о предупреждениях мы должны отправить push-тип apns как «alert»

 # Alert notification
result = push_service.notify_single_device(registration_id=registration_id,
                                   message_title='Sample title',
                                   message_body='Sample body',
                                   data_message=data_message,
                                   extra_kwargs={"apns_push_type": "alert"}
                                   )
0 голосов
/ 08 октября 2019

Просто добавьте 'apns-push-type' = 'XXX' в заголовок запроса, который вы хотите отправить в FCM

...