天天看點

iOS- 極光推送

老闆要做推送 現在準備用第三方 極光推送

1. 先去開發者賬号 來到Certificaters 生成兩個證書 (調試用的推送證書 + 釋出程式用的推送證書) 記得點選Push屬性

證書的作用 : 告知蘋果蘋果伺服器是哪台Mac在調試或者釋出可推送程式

是以生成證書必須要 上傳CSR檔案,生成完兩個證書後,下載下傳到本地輕按兩下,備用。

來到鑰匙串,把對應的兩個證書,導出為p12檔案,此時需要你填寫密碼,不要随便設定,極光推送上傳p12檔案的時候,會要求輸入密碼。

如何生成CSR檔案:

在鑰匙串中我們點選我們電腦左上角的鑰匙串選項,在選項中選在證書助理選項中的從證書頒發機構請求證書選項.

随便填,儲存到磁盤即可(後續要上傳生成證書)

2.生成完證書,來到Identifies,要生成你的AppID,需要證書+應用的BundleID 即告知蘋果伺服器 哪台電腦開發的哪個程式

3.描述檔案: 用來釋出程式 或者 調試程式使用的  需要AppID 以及 裝置号 即 哪台電腦開發的哪個程式哪些裝置可以使用,生成完之後,下載下傳到本地,輕按兩下即可。

4.現在來到極光推送的官網,建立新應用,應用名稱最好和自己的應用程式名稱一緻,之後上傳第1個步驟的的兩個p12檔案,成功後會顯示“已驗證”。

5.配置極光的SDK,官網說的很清楚,跟着做就可以了。

6.粘貼極光推送必須要用的3個方法

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


#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
        //categories
        [APService
         registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
                                             UIUserNotificationTypeSound |
                                             UIUserNotificationTypeAlert)
         categories:nil];
    } else {
        //categories nil
        [APService
         registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                             UIRemoteNotificationTypeSound |
                                             UIRemoteNotificationTypeAlert)
#else
         //categories nil
         categories:nil];
        [APService
         registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                             UIRemoteNotificationTypeSound |
                                             UIRemoteNotificationTypeAlert)
#endif
         // Required
         categories:nil];
    }
    
    
    [APService setupWithOption:launchOptions];
    
    
   
    
    return YES;
}
           

此處的userInfo就是推送來的消息 列印出來的格式為字典 可以根據字典傳來的資訊進行頁面跳轉

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler {
    // IOS 7 Support Required
   
    if (application.applicationState == UIApplicationStateActive) {
        //程式處于前台
         NSLog(@"active");
        //把icon上的小圖示設定為0
        [application setApplicationIconBadgeNumber:0];
    }
    
    
    
    NSLog(@"userInfo %@",userInfo);
    
    [APService handleRemoteNotification:userInfo];
    completionHandler(UIBackgroundFetchResultNewData);
}
           
//擷取DeviceToken成功
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    
    
    
    
    // Required
    [APService registerDeviceToken:deviceToken];
    
   
}
           

7.補充,極光推送在發送消息時,可以點選可選設定,增加字段