APNS編程—-iOS真機測試訊息推送

來源:互聯網
上載者:User

一、準備工作

1 擁有一台iOS為作業系統的蘋果裝置,iPhone,iPad,iPod都可以。

2 擁有蘋果開發人員帳號,需要真機調試,最好是是付費開發人員,後面的步驟將會更順利。

3 需要一台PC做推送伺服器,如果是台擁有MAC OS系統,將會更方便。

二、瞭解大致步驟

我們需要從測試的訊息推動伺服器,發送一條訊息到Apple Push Notification Services,然後APNS轉寄到iOS裝置,完成訊息推送過程。

由於我們的測試伺服器到APNS,傳遞的是加密後的訊息,所以需要申請認證。

三、申請認證

1 下面是需要的認證檔案

 2認證申請的流程如下 ,部分內容轉載自網路

2.1 建立SSL認證 

首先需要需要建立一個App ID以及關聯的SSL認證。有了認證,解析伺服器才能找到你的App ID,繼而將通知推送到你的應用。

建立一個認證請求檔案: 
a. 在mac上運行鑰匙串訪問(keychain) 
b. 選擇鑰匙串訪問>認證助理>從憑證授權單位中請求一個認證 
c. 輸入你的名字和郵件地址,CA郵件地址預設就可以,不要試圖去進行任何改動。 
d. 選擇“儲存到硬碟”,這樣.certSigningRequest的檔案產生了。

2.2然後建立APP ID: 
a. 登陸網站Apple Developer Member Center並進入iOS Provisioning Portal。 
b. 從左側邊欄裡點擊App IDs。 
c. 選擇New App ID,然後建立一個新的App ID。一定要確保Bundle Identifier一欄中沒有星號。 
d. 在你的App ID下面找到Configure,選中。 
e. 將“Enable for Apple Push Notification service”勾選上,然後點擊Development Push SSL Certificate下面的Configure,然後會出現Apple Push Notification service SSL Certificate Assistant設定嚮導。 
f. 點擊Continue繼續,然後點擊Choose File,選中剛建立見的.certSigningRequest檔案。 
g. 點擊Generate開始產生,然後點擊Download下載產生的SSL認證。 
h. 通過keychain程式來安裝下載好的SSL認證。 
i. 接著在“我的認證”選項先面,找到你剛才安裝名稱形如“Apple Development IOS Push Services: xxx”的認證。 
j. 雙擊認證,選擇“匯出”,匯出後的檔案尾碼名為.p12。這個時候千萬注意!出現密碼提示的時候一定不要添任何東西

至此SSL認證建立完成。 

2.3.建立Provisioning
Profile 

Provisioning檔案是用來授權iOS裝置的
a. 在 ios provisioning portal中選擇provisioning 
b. 點擊New profile 
c. 按照要求填寫profile name,certificate,APP ID(剛才建立的app id),devices 
d. 下載產生的provisioning profile 
e. 雙擊安裝。 

2.4成功後可以通過Organizer,看到如


四、擷取裝置的deviceToken,用xcode
建立一個新的工程 ,直接下載

1 將main identifier 設定為之前的App ID(必須修改)

2  添加如下代碼

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

內添加

    NSLog(@"Registering for push notifications...");    [[UIApplication sharedApplication]     registerForRemoteNotificationTypes:     (UIRemoteNotificationTypeAlert |      UIRemoteNotificationTypeBadge |      UIRemoteNotificationTypeSound)];

添加新函數

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {        NSString *str = [NSString                     stringWithFormat:@"Device Token=%@",deviceToken];    NSLog(@"%@",str);    }- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {        NSString *str = [NSString stringWithFormat: @"Error: %@", err];    NSLog(@"%@",str);    }- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {        for (id key in userInfo) {        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);    }        }

五、 用“伺服器”發送推送訊息,直接下載代碼

1 需要將之前的認證.cer的檔案,放到resource下



2 設定好token,發送訊息,

六、在iOS裝置上看到訊息

1 動手將application:didReceiveRemoteNotification:收到的通知,用UIAlertView顯示到介面上。

七、參看資料地址

認證檔案夾中p12檔案,是使用Java搭建測試伺服器時,所需要的檔案,在MAC上則不需要

Programming Apple Push Notification  Services,英文好的,可以直接看這篇   

 http://www.cnblogs.com/zhw511006/archive/2010/09/01/1815089.html




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.