2016-07-22 37 views
0

我正在使用Google Firebase向用戶發送通知。當時我試圖發送通知給單個設備(我的)。當應用在後臺運行時,Google Firebase遠程通知不會彈出

接收通知時出現問題 - 而我的應用在後臺橫幅中運行時未出現。但是,如果我打開我的應用程序,方法didReceiveRemoteNotification:觸發我的警報視圖:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { 

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:userInfo[@"notification"][@"body"] 
               message:@"More info..." 
               delegate:self 
             cancelButtonTitle:@"Cancel" 
             otherButtonTitles:@"Open",nil]; 
[alert show]; 

} 

但因爲它是谷歌的書面文件火力地堡中,應用程序打開後,此方法將觸發,所以它是有意義的。

因此,郵件傳遞到我的設備,我只是不能觸發通知橫幅,如果應用程序在後臺。

我讀了關於將消息優先級設置爲高和自定義數據密鑰內容 - 可用於1,但沒有運氣。

我是否在代碼中缺少其他內容來觸發通知? 我已經使用Google Firebase指南來實現通知。

+0

如果您還將高優先級的內容發送給您,則實際上不允許將「內容可用」消息設置爲1。也許放棄'可用內容'部分,看看是否有幫助。 –

+0

此外,考慮到您提到自定義數據,我假設您從Firebase控制檯發送。控制檯不支持content_available字段,自定義數據僅被視爲消息數據對象中可用的鍵/值對。你添加了「需要的背景模式」嗎? –

+0

@ToddKerpelman好吧,我刪除了內容 - 可用,但仍然沒有運氣..仍然收到消息,但通知不顯示應用程序在後臺 – MOzeb

回答

2

我解決了我的問題。我開始再次閱讀Google Firebase上的文檔,並且在Cloud Messaging下我發現這個:

在setAPNSToken:type:中提供您的APNs令牌和令牌類型。確保正確設置了類型的值:沙箱環境的FIRInstanceIDAPNSTokenTypeSandbox或生產環境的FIRInstanceIDAPNSTokenTypeProd。如果您沒有設置正確的類型,則郵件不會傳送到您的應用程序。

所以我錯過了把這個聲明方法:didRegisterForRemoteNotificationsWithDeviceToken:

- (void)application:(UIApplication *)application 
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 

[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeSandbox]; 

} 

不要忘了把類型: 「FIRInstanceIDAPNSTokenTypeProd」 進行生產。

相關問題