iphone 推送服務--Apple Push Notification Service

標註: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 程序獲得相應消息爲成功標誌。
發佈了54 篇原創文章 · 獲贊 31 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章