我使用FCM作为带有无声通知的主题消息传递。
我有安卓和iOS应用。
这是我在PHP中使用的示例JSON
{
"to" : "/topics/mytopic",
"priority": "high",
"content_available": true,
"data" : {
"<key>" : "<string>",
"<key2>" : "<string>"
}
我用android和iOS订阅了相同的主题,然后将其发送给这两家公司。
iOS部件总是丢失一些消息
例:
发送10条消息
android: 10
iOS: 8
我搜索了网络,只有当电池电量低于20%时,它才会丢失信息。
(我测试这种行为-确实发生了,但与我的案件无关。我的电池水平在我的测试用例中总是很高)
我有些问题,有人能帮我吗?
发布于 2020-03-09 08:04:13
Firebase不保证通过使用content在iOS中传递无声通知。
根据firebase 文档提供的内容,
“请注意,APN中的静默通知不能保证发送,而且可能取决于用户打开低功耗模式、强制退出应用程序等因素。在Android上,默认情况下数据消息会唤醒应用程序。”
这里有个解决办法,我认为可能对你有用。
对于您的iOS设备,发送一个mutable_content为true的通知有效负载、一个虚拟通知对象和数据对象中的某种标志,表示这是一个无声的通知(类似于isSilentNotif=true)。
现在编写扩展UNNotificationServiceExtension的通知服务。在通知显示给用户之前,您将在通知服务中获得控制。这里,检查所包含的标志(isSilentNotif),并以编程方式隐藏通知,如果标志为真,并在这里执行您想要执行的后台操作。
https://stackoverflow.com/questions/60594407
复制相似问题