不推荐使用disconnect():请改用shouldEstablishDirectChannel属性

Chr*_*ris 15 ios firebase firebase-cloud-messaging

在查看disconnect()方法及其描述时,它会在文档中说明以下内容

断开当前的FIRMessaging数据连接.这将停止任何连接到FIRMessaging的尝试.在已断开连接的客户端上调用此操作是无操作.

但是看看shouldEstablishDirectChannel属性

设置为YES时,Firebase Messaging将自动建立到FCM服务器的基于套接字的直接通道.如果要在预置应用程序中发送上游消息或接收非APNS,仅数据消息,则只需启用此功能.默认为NO.

他们似乎并没有做同样的事情,但我可能错了.谁能为我澄清一下这个?

Cee*_*ees 22

所以我发现的是这个.

不再需要disconnect()和connect()函数.您可以将bolean变为true,然后进行连接.

我正在把头靠在墙上,因为如果那个错误警告了.

func applicationDidEnterBackground(_ application: UIApplication) {
        Messaging.messaging().disconnect()
        print("Disconnected from FCM.")
    }
Run Code Online (Sandbox Code Playgroud)

至:

        func applicationDidEnterBackground(_ application: UIApplication) {
        Messaging.messaging().shouldEstablishDirectChannel = false
        print("Disconnected from FCM.")
    }
Run Code Online (Sandbox Code Playgroud)

通过将bolean变为true,连接也是如此.因为现在有解释这种变化的地方,我应该知道.我还在设备上对此进行了测试,我仍在收到推送通知.

  • 和处理程序的连接方法怎么样? (8认同)
  • @SujayUN,您可以通过NSNotification.Name.MessagingConnectionStateChanged的触发通知获取状态 (2认同)