在查看disconnect()方法及其说明时,它会在文档中说明以下内容
断开当前的FIRMessaging数据连接。这将停止任何连接到FIRMessaging的尝试。在已断开连接的客户端上调用此操作是无操作。
但是看看shouldEstablishDirectChannel属性
设置为YES时,Firebase Messaging将自动建立到FCM服务器的基于套接字的直接通道。如果要在预置应用程序中发送上游消息或接收非APNS,仅数据消息,则只需启用此功能。默认为NO。
他们似乎并没有做同样的事情,但我可能错了。谁能为我澄清这个?
答案 0 :(得分:17)
所以我发现的就是这个。
不再需要disconnect()和connect()函数。你可以将bolean变为true,然后进行连接。
我正在把头靠在墙上,因为如果那个错误警告。
func applicationDidEnterBackground(_ application: UIApplication) {
Messaging.messaging().disconnect()
print("Disconnected from FCM.")
}
为:
func applicationDidEnterBackground(_ application: UIApplication) {
Messaging.messaging().shouldEstablishDirectChannel = false
print("Disconnected from FCM.")
}
通过将bolean变为true来实现连接。因为现在有解释这种变化的地方,我应该知道。我还在一台设备上对此进行了测试,但我仍在收到推送通知。