標籤:
一、訊息推送原理:
在實現訊息推送之前先提及幾個於推送相關概念,如1-1:
1-1
1、 Provider:就是為指定IOS裝置應用程式提供Push的伺服器,(如果IOS裝置的應用程式是用戶端的話,那麼Provider可以理解為服務端[訊息的發起者]);
2、 APNS:Apple Push Notification Service[蘋果訊息推送伺服器];
3、 iPhone:用來接收APNS下發下來的訊息;
4、 Client App:IOS裝置上的應用程式,用來接收iphone傳遞APNS下發的訊息到制定的一個用戶端 app[訊息的最終響應者];
可以分為三個階段:
階段一:Provider[服務端]把要發送的訊息,目的IOS裝置標識打包,發送給APNS;
階段二:APNS在自身的登入Push服務的IOS裝置列表中,尋找有相應標識的IOS裝置,並將訊息發送到IOS裝置;
階段三:IOS裝置把發送的訊息傳遞給對應的應用程式,並且按照設定彈出Push通知。
具體過程,如1-2:
1-2
1、 [Client App]註冊訊息推送;
2、 [Client App]跟[APNS Service]要deviceToken, Client App接收deviceToken;
3、 [Client App]將deviceToken發送給[Provider]Push服務端程式;
4、 當Push服務端程式滿足發送訊息條件了,[Provider]向[APNS Service]發送訊息;
5、 [APNS Service]將訊息發送給[Client App].
訊息推送實現:
1、 產生*.certSigningRequest檔案,步驟如下:
[MacBookà應用程式à工具 + 生產力à鑰匙串訪問à認證助手à從認證機構求認證?à認證資訊(使用者電子郵箱地址{填寫您的郵箱,如:[email protected]},常用名稱{任意,如:PushDemo},請求是:{單選,選擇‘儲存到磁碟’})à繼續à儲存],這時會在您指定的地方產生你指定的檔案,預設為CertificateSigningRequest.certSigningRequest檔案,這裡命名為:PushDemo.certSigningRequest.在此*.certSigningRequest已經產生,具體操作步驟2-1、2-2所示。
2-1
2-2
如果產生成功,則會在[鑰匙串訪問|登入|密鑰]欄目中列出與*.certSigningRequest關聯的密鑰,這裡是PushDemo,2-3所示:
2-3
2、 建立一個App ID(在蘋果開發人員帳號中配置)
(1) 登入iOS Dev Center,登入成功後,點擊(iOS Provisioning Portal對應連結),2-4所示:
2-4
(2) 建立New App ID[App IDsàManageàNew App ID]( Description{填寫您對此App ID 的描述,如:iShop},Bundle Seed ID(App ID Prefix){選擇綁定App ID首碼,如:預設選擇Generate New},Bundle Identifier(App ID Suffix){填寫綁定App ID尾碼,如:com.yourcorp.iShop}),如2-5所示:
2-5
這樣就會產生下面這條記錄,2-6所示:
2-6
(3) 配置上一步中產生的App ID,讓其支援訊息推送[點擊2-6中的Configureà選中Enable for Apple Push Notification serviceà點擊Configure],2-7所示:
2-7
(4) Generate a Certificate Signing Request(產生部署請求認證)[點擊2-7中的2ConfigureàContinueà步驟1產生的*certSigningRequest檔案(這裡是iShop.certSigningRequest)à Generateà產生完成後將其下載下來,命名為:aps_developer_identity.cer],雙擊aps_developer_identity.cer認證{將認證與密鑰關聯,並將認證匯入到MacBook中},如2-8所示:
2-8
(5) 建立Development Provisioning Profiles[開發許可設定檔](Provisioning| Development|New Profile),具體操作流程如2-9所示:
2-9
點擊圖2-9中Submit,產生Development Provisioning Profiles[開發許可設定檔],這裡是:iShopDevprofile.mobileprovision如2-10所示:
2-10
下載此開發許可認證(用於聯機調試)。
總結,到現在為止,我們已經產生:A:*.certSigningRequest檔案(在步驟(4)中使用,用於產生認證B)、B: aps_developer_identity.cer認證(在Provider[Push伺服器]服務端應用使用)、C:*..mobileprovision開發許可設定檔(在Client App用戶端應用聯機調試使用)。
至此,訊息推送的配置已經全部完成,接下來的工作就是編寫Provider[Push伺服器]服務端應用和Client App用戶端應用的程式,本來自己是想一步一步詳細的寫下去,但是對於這一部分,互連網上已經很多,在此就不在贅述,但還是給出相應串連,供大家參考,如下:
(1)iphone push notification 訊息推送
(2)iphone 推播通知 伺服器端java 實現
(3)iPhone訊息推送機制實現及通過.net應用程式發送消
註:原文轉載處http://mmz06.blog.163.com/blog/static/121416962011111710934946/
IOS 訊息推送原理及實現總結