資源描述:
《ios實(shí)現(xiàn)推送消息并用php做推送服務(wù)端的方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、iOS實(shí)現(xiàn)推送消息并用PHP做推送服務(wù)端的方法IOS推送消息是許多IOS應(yīng)用都具備的功能,最近也在研究這個(gè)功能,參考了很多資料終于搞定了,下面就把步驟拿出來分享下:iOS消息推送的工作機(jī)制可以簡(jiǎn)單的用下圖來概括:Provider是指某個(gè)iPhone軟件的Push服務(wù)器,APNS是ApplePushNotificationService的縮寫,是蘋果的服務(wù)器。上圖可以分為三個(gè)階段:第一階段:應(yīng)用程序把要發(fā)送的消息、目的iPhone的標(biāo)識(shí)打包,發(fā)給APNS。第二階段:APNS在自身的已注冊(cè)Push服務(wù)的
2、iPhone列表中,查找有相應(yīng)標(biāo)識(shí)的iPhone,并把消息發(fā)送到iPhone。第三階段:iPhone把發(fā)來的消息傳遞給相應(yīng)的應(yīng)用程序,并且按照設(shè)定彈出Push通知。南寧IOS開發(fā)培訓(xùn)從上圖我們可以看到:1、應(yīng)用程序注冊(cè)消息推送。2、iOS從APNSServer獲取devicetoken,應(yīng)用程序接收devicetoken。3、應(yīng)用程序?qū)evicetoken發(fā)送給PUSH服務(wù)端程序。4、服務(wù)端程序向APNS服務(wù)發(fā)送消息。5、APNS服務(wù)將消息發(fā)送給iPhone應(yīng)用程序。無論是iPhone客戶端和AP
3、NS,還是Provider和APNS,都需要通過證書進(jìn)行連接。下面我介紹一下幾種用到的證書。一、CSR文件1、生成CertificateSigningRequest(CSR)南寧IOS開發(fā)培訓(xùn)2、填寫你的郵箱和常用名稱,并選擇保存到硬盤。點(diǎn)擊繼續(xù):南寧IOS開發(fā)培訓(xùn)這樣就在本地生成了一個(gè)Push.certSigningRequest文件。二、p12文件1、導(dǎo)出密鑰。南寧IOS開發(fā)培訓(xùn)2、輸入你的密碼。這樣就生成了一個(gè)Push.p12文件。三、SSLcertificate文件1、用你付過費(fèi)的帳號(hào)登錄到
4、iOSProvisioningPortal,并新建一個(gè)AppID,這個(gè)過程可以參考:iOS應(yīng)用的真機(jī)調(diào)試,這樣就會(huì)生成下面這條記錄:2、點(diǎn)擊右側(cè)的Configure:南寧IOS開發(fā)培訓(xùn)3、點(diǎn)擊DevelopmentPushSSLCertificate一行后的Configure:4、點(diǎn)擊Continue:南寧IOS開發(fā)培訓(xùn)5、選擇前面生成好的Push.certSigningRequest文件,點(diǎn)擊Generate,出現(xiàn)如下所示的頁面:南寧IOS開發(fā)培訓(xùn)6、點(diǎn)擊Continue:南寧IOS開發(fā)培訓(xùn)7、點(diǎn)
5、擊Download,并將文件命名為aps_developer_identity.cer。8、點(diǎn)擊Done,你會(huì)發(fā)現(xiàn)狀態(tài)變成了Enabled:到現(xiàn)在為止,我們已經(jīng)生成了三個(gè)文件:1、Push.certSigningRequest南寧IOS開發(fā)培訓(xùn)2、Push.p123、aps_developer_identity.cer雙擊aps_developer_dientity.cer注冊(cè)到你的鑰匙串中,這樣你的鑰匙串中就會(huì)有二、準(zhǔn)備profile證書,因?yàn)橥扑拖⒅荒茉僬鏅C(jī)上測(cè)試,所以要建一個(gè)profile證
6、書點(diǎn)擊"newprofile"為上面新建的APPID建個(gè)profile,成功之后下載*_Dev_Profile.mobileprovision雙擊將其加入到xcode的ProvisioningProfiles中,這里有一點(diǎn)要注意,再將這個(gè)加入xcode之前如果之前已經(jīng)加入過一定要把之前加入的刪掉,如果有多個(gè)的話會(huì)出錯(cuò)。三、工程代碼到這里證書已經(jīng)準(zhǔn)備完畢,接下來,我們?cè)趚code中新建一個(gè)測(cè)試工程,注意設(shè)置工程的BundleIdentifier必須與上面建的APPID里的相同南寧IOS開發(fā)培訓(xùn)在did
7、FinishLaunchingWithOptions中加入一下代碼-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{[self.windowmakeKeyAndVisible];[[UIApplicationsharedApplication]registerForRemoteNotificationTypes:UIRemoteNotific
8、ationTypeBadge
9、UIRemoteNotificationTypeSound
10、UIRemoteNotificationTypeAlert];returnYES;}-(void)application:(UIApplication*)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData*)pToken{NSLog(@"regisgersuccess:%@",pToken);//