1

使用FCM的推送通知iOS中10:火力地堡背景和非活動的通知不顯示的iOS

這是天色通過我們自己的API推送通知後稱爲剪斷:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { 
    // If you are receiving a notification message while your app is in the background, 
    // this callback will not be fired till the user taps on the notification launching the application. 
    // TODO: Handle data of notification 

    [[FIRMessaging messaging] appDidReceiveMessage:userInfo]; 
    if (userInfo[kGCMMessageIDKey]) { 
     NSLog(@"Message ID: %@", userInfo[kGCMMessageIDKey]); 
    } 

    completionHandler(UIBackgroundFetchResultNewData); 
    if(application.applicationState == UIApplicationStateBackground){ 
     [[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Bacgkround" 
                 description:@"Wassup" 
                   type:TWMessageBarMessageTypeSuccess callback:^{ 


                   }]; 

    } 
    else if(application.applicationState == UIApplicationStateActive){ 
     [[TWMessageBarManager sharedInstance] showMessageWithTitle:@"Active" 
                 description:@"Wassup" 
                   type:TWMessageBarMessageTypeSuccess callback:^{ 


                   }]; 
    } 

    else if(application.applicationState == UIApplicationStateInactive){ 
     [[TWMessageBarManager sharedInstance] showMessageWithTitle:@"InActive" 
                 description:@"Wassup" 
                   type:TWMessageBarMessageTypeSuccess callback:^{ 


                   }]; 
    } 
} 

當應用程序是活動的,上面的方法被調用和UIApplicationStateActive情況下得到執行,我顯示一個彈出使用第三方庫。當我按主頁按鈕並推送通知時,上面的方法被調用並且UIApplicationStateBackground被執行,但我不知道如何以橫幅形式顯示通知?

這是我必須處理通知的方法是什麼?如果是,我該如何處理Background和Inactive狀態?

回答

0

我不知道很多關於TWMessageBarManager但我可以告訴你不能用戶的任何lib或任何你所做的自定義顯示的通知,而你的應用程序是不是在前臺。如果您的應用程序在後臺,你加上iOS收到推送通知的通知橫幅將表明自己

+0

但我需要寫在UIApplicationStateBackground情況下,正確的東西嗎? –

+0

我不這麼認爲,我從來沒有做過任何處理推送通知'UIApplicationStateBackground',iOS將自行 –

+0

處理它在這種情況下, - (空)userNotificationCenter:(UNUserNotificationCenter *)中心 didReceiveNotificationResponse:(UNNotificationResponse *)響應 withCompletionHandler:(void(^)())completionHandler {}方法在我的情況下沒有被調用! –

1

你只要把通知的身體在有效載荷從服務器接收,如果不加它,iOS的考慮它無聲推送通知,並不會顯示通知banner.eg

{ 
    "data":{ 
    "title":"mytitle", 
    "body":"mybody", 
}, 
"notification":{ 
    "title":"mytitle", 
    "body":"mybody", 
}, 
} 

觸發時由firebase.eg提供在以往狀態的應用是,你會得到它的回調方法是什麼旗幟通知用戶點擊

// [START receive_message] 
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo; 

注:無需使用任何第三方庫顯示通知橫幅,因爲這一切都是通過iOS的控制。