2017-05-25 135 views
10

當斷開()方法的前瞻性和它的描述,說,在文檔斷開()已被棄用:請使用shouldEstablishDirectChannel屬性,而不是

斷開當前FIRMessaging數據連接下面。這會阻止任何嘗試連接到FIRMessaging。在一個已經斷開連接的客戶端上調用這個函數是沒有用的。

但看shouldEstablishDirectChannel財產

當設置爲YES,火力地堡的消息會自動建立一個基於Socket的直接通道到FCM服務器。只有在發送上行消息或接收非APNS,僅限數據的消息時,才需要啓用此功能。缺省值是NO。

看起來他們並不完全一樣,但我可能是錯的。任何人都可以爲我澄清這一點?

回答

10

所以我發現是這樣的。

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.") 
    } 

和相同的轉動bolean真無二連接。因爲現在有解釋這個變化的地方,我想我應該看看。我也在設備上測試過這一點,我仍然在收取推送通知。

+7

和處理程序的連接方法呢? –

+0

@SujayUN你可以通過NSNotification.Name.MessagingConnectionStateChanged觸發的通知獲取狀態 – khunshan

+0

@Khunshan我不知道該怎麼做。如果你能詳細解釋並作爲答案重播,那將是非常有幫助的。 –

相關問題