iphone 推送服務--Apple Push Notification Service


 

iphone 推送服務--Apple Push Notification Service

分類: 推送服務 2011-04-14 14:24  8398人閱讀  評論(4)  收藏  舉報

標註:APNs 蘋果推送服務器
Device 安裝帶有推送服務程序的iPhone手機
Provider 程序服務器,把須要推送的信息發給 APNs
DeviceToken  
在Device第一次鏈接APNs時, 由APNs生成的通過加密的鏈接認證信息。在之後的鏈接中,不管時Provider到APNs仍是APNs到Device 都須要 DeviceToken做爲認證。
Payload  須要推送的消息的主體內容。 alert-alert消息的消息體,按鍵標題等 badge -顯示在程序icon右上角的數字,sound-聲音提示文件的文件名,該聲音資源文件要在程序包中。

總體流程大致分爲五個步驟:
1: 
Device --> 鏈接-->   APNs    獲取 DeviceToken 
          2:  Device  -->鏈接-- >   Provider  提供 DeviceToken 
                                              
3: 
Provider偵測須要push的消息生成 Notification信息

4:   Provider偵把要push的消息推送到APNs
5:    APNs把該消息推送到手機

使用方法:
爲了獲取deviceToken
第一步:獲取認證書Certificates.p12   [註釋:.p12 文件,文件名能夠隨便取]
Certificates.p12 認證書 是用於服務器與APNs服務器SSL 鏈接時的認證,而獲取p12的前提是獲取APNs Assistant

1:每一個程序都要在apple開發中心生成  
App ID.  

2:單擊app id 的後面的 
Configure 

3:在新的頁面中,勾選
Enable Push Notification Services , 然後點擊Configure ,隨後出現APNs Assistant,APNs助手會引導生成你的程序與APNs服務器進行SSL鏈接的認證書App ID specific Client SSL certificate[註釋:通常文件名爲「 aps_developer_identity.cer」 可修改]

4:APNs助手會引導你保存SSL certificate到你的硬盤,保存好後雙擊,安裝到你的keychain

5:  執行完以上四步,能夠點擊Done,關閉APNs助手。

6:啓動Keychain Access程序,查看剛纔安裝的認證,name 爲apple Development/Production  push Services。。。 
導出--即得到 Certificates.p12 保存好給 Provider 服務器使用


第二步:iPhone 端
iPhone  provisioning   以開啓了PUSH功能App ID 生成相應的provisioning。

iPhone須要用到的方法函數以下:

//註冊啓用 push
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge /*|UIRemoteNotificationTypeSound*/)];

//用該判斷 程序是否是經過push消息啓動的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

//iPhone 從APNs服務器獲取
deviceToken後激活該方法
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

//註冊push功能失敗 後 返回錯誤信息,執行相應的處理
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err



注意:
deviceToken的處理
[[devToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]

調測試方法:
Device
調試運行iPhone端程序,以獲取deviceToken 爲成功標誌。

Provider
網上有個共開發測試的Provider程序:
PushMeBaby: 使用的方法是, 1;拷貝註冊獲取的SSL certificate文件【.cer文件】重命名爲 apns.cer 添加到PushMeBaby資源文件夾中 2: 運行,輸入 iPhone端獲取的deviceToken 3: 推送 以Device 程序得到相應消息爲成功標誌。
相關文章
相關標籤/搜索