2016-07-27 38 views
2

我正嘗試使用Firebase向我的應用發送背景推送通知。 iOS顯示通知正常,但-application:didReceiveRemoteNotification:fetchCompletionHandler:未在我的AppDelegate上調用。Firebase SDK未提供背景通知

當設備連接到調試器時,設備收到通知時會收到以下日誌消息。

2016年7月27日15:13:08.234:FIRMessaging接收通知在無效狀態2

2016年7月27日15:13:08.234 MyApp的[2513:1130209]警告:應用代表接收的呼叫to -application:didReceiveRemoteNotification:fetchCompletionHandler:但完成處理程序從未被調用過。

它在我看來像Firebase是swizzling -application:didReceiveRemoteNotification:fetchCompletionHandler:,但未能調用我的實現,因爲它認爲應用程序處於無效狀態,事實並非如此。

Theres對通知有效載荷也沒有什麼特別之處,會導致問題。

{ 
    gcm.message_id: 0:1469652824137045%3aef914a3aef914a, 
    objectId: 7, 
    aps: { 
     alert: "Your object has been updated" 
     content-available: 1 
    } 
} 

爲什麼火力地堡說應用程序處於無效狀態,未能通知轉發給我的AppDelegate

回答

0

我想你可能誤解的錯誤 - 這個錯誤的發生,因爲你的應用程序的didReceiveRemoteNotification處理被調用。

問題可能是您的didReceiveRemoteNotification處理程序中,您需要確保您使用正確的UIBackgroundFetchResult類型調用completionHandler。 (如果你在Swift中,它可能看起來像completionHandler(.NewData))。

這基本上是你的應用程序讓iOS知道它做了你想要它做的任何工作,當你將它發送給遠程通知時。如果你不這樣做,iOS會對你的應用感到不滿,並可能在將來停止轉發它的通知。

+0

我已經在我的實現中放置了一個斷點,它從來沒有被調用過。我最終禁用了他們的swizzing以使其工作,這是他們的支持建議。 –

+0

你爲什麼說你需要使用'NewData'?什麼是'NoData'用於? –