99

[iOS開發]Firebase03 – 使用 Firebase Cloud Messaging for Push notification

Cloud messaging 其實包含兩個部分,一個是 push notification,在 firebase 被歸類為 downstream messages,另一個是 realtime message 就像是即時通訊軟體傳的訊息,可以即時更新,或是在 Facebook APP 中不用刷新,就可以看到 feed 自動更新。

而本篇講的只是 push notification 的部分。如同上一篇所述,這個應該是 Parse 被 facebook 收起來以後,最好的「免費」 push notification 替代品。

1. 首先要實作 push notification 就要先申請證書。 development、production的證書各一。不熟悉證書產生步驟的朋友可以看這裡

2. 產生好的證書是兩個副檔名為 p12 的檔案,將這兩個檔案上傳到 Firebase。
點選專案名稱旁邊的「齒輪圖示」,選擇「CLOUD MESSAGING」頁面,就可以看到「上傳憑證」的按鈕。
螢幕快照_2016-05-22_下午2_06_33_1

3. 在 pod file 加入

pod 'Firebase/Messaging'

4. 在 AppDelegate.m 中的 didFinishLaunchingWithOptions 加入

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |
                                                    UIUserNotificationTypeBadge |
                                                    UIUserNotificationTypeSound);
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes
                                                                             categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    [[UIApplication sharedApplication] registerForRemoteNotifications];}
    [FIRApp configure];

5. 在 AppDelegate.m 中加入

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    
    // Store the deviceToken in the current Installation and save it to Parse.
    [[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeSandbox];
    
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
    
    NSLog(@"Failed to get token, error: %@", error);
}

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    
    // Print message ID.
    NSLog(@"Message ID: %@", userInfo[@"gcm.message_id"]);
    
    // Pring full message.
    NSLog(@"%@", userInfo);
    
}

6. 到 Firebase 後台發送 push notification 試試看吧。在左側選單選擇「Notification」,輸入訊息與要發送給哪一個應用程式(應用程式的bundle id)。然後再點選最下方的傳送訊息,訊息就會發送出去囉。
firebase_push_noitification_message

 

相關文章
[iOS開發]Firebase01 – 基礎設定與 Firebase Analytics 的使用
[iOS開發]Firebase02 – 使用 Firebase Crash Reporting
[iOS開發]Firebase03 – 使用 Firebase Cloud Messaging for Push notification
[iOS開發]Firebase04 – Remote Config 之使用

 

標籤: , ,

很愛畫虎爛的我,開始了用文章唬爛社會大眾的志業!