Я столкнулся с той же проблемой, была проблема в этом репо. Мне удалось попробовать какое-то решение из него
это решение хорошо работает для меня
data = {
"title": 'New Notification fired',
"body": 'I just fired a new notification'
}
kwargs = {
"content_available": True,
'extra_kwargs': {"priority": "high", "mutable_content": True, 'notification': data },
}
for device in devices:
if device.type == 'ios':
device.send_message(sound='default', **kwargs)
else:
device.send_message(data=data)
Попробуйте это я убедитесь, что он будет работать так, как я использую во всех моих проектах
, а затем улучшите его с помощью этого
devices.objects.filter(type='ios').send_message(sound='default', **kwargs)
devices.objects.exclude(type='ios').send_message(data=data)
редактировать "дополнительные разъяснения"
в iOS, чтобы предоставить фоновое уведомление, JSON, отправляемый в firebase, ДОЛЖЕН иметь ключ "content_available": true и другие проблемы, при которых в уведомлении нет звука. это мой рабочий json со звуковым и фоновым уведомлением для iOS.
{
"data":{
"key":"...firebaseserverkey..."
},
"content_available" : true,
"notification":{
"sound": "default",
"title": "...",
"body":"..."
},
"to":"...devicetoken..."
}
просто попробуйте отправить запрос с этим телом с помощью почтальона с этим URL https://fcm.googleapis.com/fcm/send это будет делать то, что fcm- django do
content_available
- при iOS, используйте это поле для представления content-available в полезной нагрузке APN. Когда отправляется уведомление или сообщение, и для него установлено значение true, неактивное клиентское приложение пробуждается, и сообщение отправляется через APN в виде тихого уведомления, а не через сервер соединений FCM. Обратите внимание, что тихие уведомления в APN не гарантируются, и могут зависеть от таких факторов, как включение пользователем режима пониженного энергопотребления, принудительное завершение работы приложения и т. Д. c. На Android сообщения данных по умолчанию активируют приложение. На Chrome, в настоящее время не поддерживается.
priority
(также из документов):
Устанавливает приоритет сообщения. Допустимые значения: «нормальный» и «высокий». На iOS они соответствуют приоритетам APN 5 и 10.
По умолчанию уведомления отправляются с высоким приоритетом, а сообщения данных - с обычным приоритетом. Обычный приоритет оптимизирует потребление батареи клиентским приложением и должен использоваться, если не требуется немедленная доставка. Для сообщений с обычным приоритетом приложение может получать сообщение с неопределенной задержкой.
Когда сообщение отправляется с высоким приоритетом, оно отправляется немедленно, и приложение может отображать уведомление.
как упомянуто здесь Обмен сообщениями в Firebase - что такое "content_available": true также вы можете прочитать документы для получения дополнительной информации