【问题标题】:disconnect() is deprecated: Please use the shouldEstablishDirectChannel property insteaddisconnect() 已弃用:请改用 shouldEstablishDirectChannel 属性
【发布时间】:2017-05-25 08:46:43
【问题描述】:

查看 disconnect() 方法及其描述时,文档中会显示以下内容

断开当前的 FIRMessaging 数据连接。这会阻止任何连接到 FIRMessaging 的尝试。在已经断开连接的客户端上调用它是无操作的。

但是查看 shouldEstablishDirectChannel 属性

设置为 YES 时,Firebase 消息传递将自动建立到 FCM 服务器的基于套接字的直接通道。仅当您在前台应用程序中发送上游消息或接收非 APNS、仅数据消息时才需要启用此功能。默认为否。

似乎他们做的事情并不完全相同,但我可能错了。谁能帮我澄清一下?

【问题讨论】:

    标签: ios firebase firebase-cloud-messaging


    【解决方案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 中已被删除。尝试调用它们会导致崩溃
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 2014-04-13
    • 2018-05-09
    • 2016-06-13
    • 1970-01-01
    相关资源
    最近更新 更多