資源描述:
《iphone消息推送機制實現(xiàn)與探討》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、iPhone消息推送機制實現(xiàn)與探討最近兩天在研究ios的消息推送機制。研究這個東西,還是充滿興趣的。Push的原理:Push的工作機制可以簡單的概括為下圖圖中,Provider是指某個iPhone軟件的Push服務器,這篇文章我將使用.net作為Provider。?APNS是ApplePushNotificationService(ApplePush服務器)的縮寫,是蘋果的服務器。上圖可以分為三個階段。第一階段:.net應用程序把要發(fā)送的消息、目的iPhone的標識打包,發(fā)給APNS。?第二階段:APNS
2、在自身的已注冊Push服務的iPhone列表中,查找有相應標識的iPhone,并把消息發(fā)到iPhone。?第三階段:iPhone把發(fā)來的消息傳遞給相應的應用程序,并且按照設定彈出Push通知。????從上圖我們可以看到。??1、首先是應用程序注冊消息推送。???2、IOS跟APNSServer要deviceToken。應用程序接受deviceToken。???3、應用程序?qū)eviceToken發(fā)送給PUSH服務端程序。???4、服務端程序向APNS服務發(fā)送消息。???5、APNS服務將消息發(fā)送給iPho
3、ne應用程序。???無論是iPhone客戶端跟APNS,還是Provider和APNS都需要通過證書進行連接的。下面我介紹一下幾種用到的證書。幾種證書:一、*.certSigningRequest文件??1、生成CertificateSigningRequest(CSR):2、填寫你的郵箱和CommonName,這里填寫為PushChat。選擇保存到硬盤。這樣就在本地生成了一個PushChat.certSigningRequest文件。二、生成*.p12文件1、導出密鑰,并輸入你的密碼。輸入你的密碼:這樣
4、就生成了一個PushChatKey.p12文件。三、新建一個AppID和SSLcertificate文件1、用你的付過費的apple帳號登錄到iOSProvisioningPortal。新建一個AppID。????Description:中輸入PushChat????BundleSeedID:默認選擇GenerateNew????BundleIdentifier:輸入com.mysoft.PushChat???點擊提交這樣就會生成下面這條記錄:點擊配置:出現(xiàn)下面界面,點擊繼續(xù):這里我們選擇前面生成好的Pu
5、shChat.certSigningRequest文件,點擊生成。正在生成生成完畢,我們把它下載下來。命名為aps_developer_identity.cer。點擊完成,你會發(fā)現(xiàn)狀態(tài)變成Enabled。到現(xiàn)在為止,我們已經(jīng)生成了3個文件。1、PushChat.certSigningRequest2、PushChatKey.p123、aps_developer_identity.cer現(xiàn)在我們創(chuàng)建一個簡單的iPhone應用程序。1、打開Xcode,選擇創(chuàng)建一個View-basedApplication。命
6、名如下圖:2、在PushChatAppDelegate中的didFinishLaunchingWithOptions方法中加入下面代碼:-?(BOOL)application:(UIApplication?*)applicationdidFinishLaunchingWithOptions:(NSDictionary?*)launchOptions{self.window.rootViewController?=?self.viewController;[self.windowmakeKeyAndVisi
7、ble];//?Letthedeviceknowwewanttoreceivepushnotifications[[UIApplicationsharedApplication]registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge?
8、?UIRemoteNotificationTypeSound?
9、?UIRemoteNotificationTypeAlert)];return?YES;}通過registerForRemoteNot
10、ificationTypes方法,告訴應用程序,能接受push來的通知。3、在xcode中運行,會彈出下面的提示框:選擇OK。表示此應用程序開啟消息通知服務。在?PushChatAppDelegate.m代碼中添加下面方法獲取deviceToken?:-?(void)application:(UIApplication*)applicationdidRegisterForRemoteNotificationsWithDevic