2016-09-25 41 views
0

我在我的應用程序使用推送通知,它做工精細,但我想收到通知,如果我的背景,但方法didReceiveRemoteNotification應用不叫
我瘋了,
1-啓用背景國防部
2-檢查遠程通知
3-放content_available =數據有效載荷真正
還當我從FCM儀表板測試它不工作,
請誰能幫助我,謝謝。didReceiveRemoteNotification在後臺不叫雖然content_available =真

回答

-1

您的應用程序需要處理所有可能的推送通知交貨狀態:

你的應用程序是剛剛推出 你的應用程序是剛剛從背景帶到前景 您的應用程序已經在前臺 運行,則沒有得到在交付時選擇使用什麼演示方法來呈現推送通知,這是通知本身編碼的(可選警報,徽章號碼,聲音)。但是,由於您大概都在控制應用程序和推送通知的有效內容,因此您可以在有效內容中指定是否存在已提供給用戶的警報視圖和消息。只有在應用程序已在前臺運行的情況下,您知道用戶不是通過警報或定期從主屏幕啓動應用程序。

你可以告訴是否使用這段代碼你的應用剛剛被推上前臺或不didReceiveRemoteNotification:

- (void)application:(UIApplication *)application  didReceiveRemoteNotification:(NSDictionary *)userInfo 

{ 
    if (application.applicationState == UIApplicationStateActive) 
    // app was already in the foreground 
    else 
    // app was just brought from background to foreground 
    ... 
} 

以備將來參考。請檢查

didReceiveRemoteNotification when in background

+0

嗨,感謝您的回答,但正如我所說的通知工作正常,但當應用程序在後臺didReceiveRemoteNotification未調用,但點擊通知後,它被稱爲爲什麼? – Hosny

+0

嗨,很明顯,因爲你的應用程序不活動,直到用戶點擊通知將應用程序從後臺或前臺狀態移動到活動狀態。 didReceiveRemoteNotification將不會被調用。 –

0

如果你在iOS 10測試,content_available必須在notification關鍵的JSON價值,而不是在data關鍵。雖然對於iOS <= iOS 9,content_available可以在JSON的值爲datanotification

+0

嗨,我發現瘋狂的通知不能在後臺工作的原因是我發送有效載荷警報密鑰,當我發送aps只與content_available和聲音密鑰,然後它作爲魅力:),但我認爲這是不對的。 – Hosny