我正在使用这个插件从我的 Django REST 应用程序发送推送通知。
https://github.com/xtrinch/fcm-django
它适用于安卓端,但 IO 无法接收任何通知。谁能告诉我我在这里错过了什么。
以下是我的fcm_django配置:
FCM_DJANGO_SETTINGS = {
"APP_VERBOSE_NAME": "app-name",
"FCM_SERVER_KEY": "<firebase-server-key>",
"ONE_DEVICE_PER_USER": True,
"DELETE_INACTIVE_DEVICES": False,
}
以下是我用来向设备发送通知的代码:
data = {
"title": 'New Notification fired',
"body": 'I just fired a new notification'}
devices.send_message(data=data)
它会导致以下成功响应:
{'multicast_ids': [1212322313231212], 'success': 1, 'failure': 0, 'canonical_ids': 0, 'results': [{'message_id': '0:1579690926842318%a93f219bf9fd7ecd'}], 'topic_message_id': None}
非常感谢这方面的任何帮助。谢谢你的时间。
我遇到了同样的问题, 这个回购中有一个问题,我设法尝试了一些解决方案
此解决方案对我有用
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 中,要提供后台通知,发送到 Firebase 的 JSON 必须具有密钥"content_available":true 等问题没有通知声音。 这是我的工作 JSON 与 iOS 的声音和后台通知。
{
"data":{
"key":"...firebaseserverkey..."
},
"content_available" : true,
"notification":{
"sound": "default",
"title": "...",
"body":"..."
},
"to":"...devicetoken..."
}
只需尝试使用此 URL 的邮递员向该正文发送 POST 请求 https://fcm.googleapis.com/fcm/send 这将做FCM-Django做的事情
content_available
- 在 iOS 上,使用此字段表示 APNs 有效负载中可用的内容。发送通知或消息且设置为 true 时,将唤醒非活动客户端应用,并且消息将通过 APNs 作为静默通知发送,而不是通过 FCM 连接服务器发送。请注意,APNs 中的静默通知不保证会传递,并且可能取决于用户打开低功耗模式、强制退出应用等因素。在 Android 上,数据消息默认会唤醒应用。在 Chrome 上,目前不受支持。
priority
(也来自文档(:
设置消息的优先级。有效值为"正常"和"高"。在 iOS 上,这些对应于 APNs 的优先级 5 和 10。
默认情况下,通知消息以高优先级发送,数据消息以普通优先级发送。普通优先级可优化客户端应用的电池消耗,除非需要立即交付,否则应使用。对于具有正常优先级的消息,应用可能会收到具有未指定延迟的消息。
当以高优先级发送消息时,它会立即发送,并且应用可以显示通知。
正如这里提到的 Firebase 消息传递 - 什么是"content_available":真 您也可以阅读文档以获取更多信息