標註: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 程序得到相應消息爲成功標誌。 |