disconnect() 已弃用:请改用 shouldEstablishDirectChannel 属性
Posted
技术标签:
【中文标题】disconnect() 已弃用:请改用 shouldEstablishDirectChannel 属性【英文标题】:disconnect() is deprecated: Please use the shouldEstablishDirectChannel property instead 【发布时间】:2017-05-25 08:46:43 【问题描述】:查看 disconnect() 方法及其描述时,文档中会显示以下内容
断开当前的 FIRMessaging 数据连接。这会阻止任何连接到 FIRMessaging 的尝试。在已经断开连接的客户端上调用它是无操作的。
但是查看 shouldEstablishDirectChannel 属性
设置为 YES 时,Firebase 消息传递将自动建立到 FCM 服务器的基于套接字的直接通道。仅当您在前台应用程序中发送上游消息或接收非 APNS、仅数据消息时才需要启用此功能。默认为否。
似乎他们做的事情并不完全相同,但我可能错了。谁能帮我澄清一下?
【问题讨论】:
【参考方案1】:所以我发现的是这个。
不再需要 disconnect() 和 connect() 函数。您只需将布尔值设置为 true 即可建立连接。
我正把头撞在墙上,因为如果那个错误警告。
func applicationDidEnterBackground(_ application: UIApplication)
Messaging.messaging().disconnect()
print("Disconnected from FCM.")
到:
func applicationDidEnterBackground(_ application: UIApplication)
Messaging.messaging().shouldEstablishDirectChannel = false
print("Disconnected from FCM.")
通过将布尔值变为真,连接也是如此。因为现在有解释这种变化的地方,所以我觉得我应该遮阳篷。我还在设备上对此进行了测试,但我仍在接收推送通知。
【讨论】:
那么使用处理程序的连接方法呢? @SujayUN 你可以通过触发通知获取状态,即 NSNotification.Name.MessagingConnectionStateChanged @Khunshan 我不知道该怎么做。如果您能详细解释并重播作为答案,将非常有帮助。 它们不仅不再需要,而且在 6.0.0 中已被删除。尝试调用它们会导致崩溃以上是关于disconnect() 已弃用:请改用 shouldEstablishDirectChannel 属性的主要内容,如果未能解决你的问题,请参考以下文章
ScriptProcessorNode 已弃用。改用 AudioWorkletNode
名称 tf.Session 已弃用。请改用 tf.compat.v1.Session
Python 2.7.9 Mac OS 10.10.3 消息“setCanCycle:已弃用。请改用 setCollectionBehavior”
kotlin-stdlib-jre7 已弃用。请改用 kotlin-stdlib-jdk7
MouseEvent.mozPressure 已弃用。改用 PointerEvent.pressure
mpdf 错误 - preg_replace(): /e 修饰符已弃用,请改用 preg_replace_callback