作為提供者為程式開發和部署推送通知,必須通過ios developer program portal獲得ssl證書。每個證書限用於乙個程式,使用程式的bundle id作為標識。證書有兩種用途的:一種是針對sandbox(用於開發和測試),另外一種針對發布產品。這兩種執行環境擁有為各自指定的ip位址並且需要 不同的證書。還必須為兩種不同的環境獲取各自的provisioning profiles。
apns提供了兩項基本的服務:訊息推送和反饋服務。
下面是乙個完整推送流程圖
從上圖,我們可以看到。
首先是應用程式註冊訊息推送。
ios跟apns server要devicetoken。應用程式接受devicetoken。
應用程式將devicetoken傳送給push服務端程式(provider)。
服務端程式向apns服務傳送訊息。
apns服務將訊息傳送給iphone應用程式。
無論是iphone客戶端跟apns,還是provider和apns都需要通過證書進行連線的:
圖中,1. provider是指某個iphone軟體的push伺服器,是我們將要開發的伺服器。
上圖可以分為三個階段:
第一階段:推送伺服器(provider)把要傳送的訊息、目的iphone的標識打包,發給apns;
第二階段:apns在自身的已註冊push服務的iphone列表中,查詢有相應標識的iphone,並把訊息發到iphone;
第三階段:iphone把發來的訊息傳遞給相應的應用程式,並且按照設定彈出push通知。
4. 此時會彈出一視窗,點「continue」
5. 彈出證書上傳頁面,證書選擇事先做好的「certificatesigningrequest.certsigningrequest」,然後點「generate」按鈕;
6. 接下來會有「your apns ssl certificate has been generated.」提示,點「continue」:
11. 選中push services證書,右鍵匯出證書為個人資訊交換(.p12)格式檔案,這裡我命名為「aps_development.p12」,點儲存時會彈出乙個密碼設定視窗,可留空不填:
12. 在終端執行下面的命令,把剛才匯出的個人資訊交換(.p12)格式檔案加密轉換成推送伺服器的推送證書:
上面的命令在執行時有4處是需要輸入密碼的,其中1和2直接回車,3必須設定乙個key如「push」,在4處輸入3設定的key 「push」;
命令執行完後生成的「iostest_push_dev.pem」就是我們推送伺服器要使用的推送證書;
經過以上步驟的配置,已經完成了開發推送功能所需要的條件了,接下來將會新建乙個ios應用來體驗完成推送功能,在ios應用需要實現的介面。
為使應用能支援推送功能,我們的專案配置時要注意:
測試需要用真機,模擬器不支援。
[cpp]view plain
copy
}
return yes;
}
2. 接收從蘋果伺服器返回的唯一的裝置token,該token是推送伺服器傳送推送訊息的依據,所以需要傳送回推送伺服器儲存
[html]view plain
copy
nsstring* token = [nsstring stringwithformat:@"%@",devicetoken];
nslog(@"apns -> 生成的devtoken:%@", token);
//把devicetoken傳送到我們的推送伺服器
devicesender* sender = [[[devicesender alloc]initwithdelegate:self ]autorelease];
[sender senddevicetopushserver:token ];
}
3.接收註冊推送通知功能時出現的錯誤,並做相關處理:
[html]view plain
copy
nslog(@"apns -> 註冊推送功能時發生錯誤, 錯誤資訊:\n %@", err);
}
4. 接收到推送訊息,解析處理
[cpp]view plain
copy
}
iOS推送通知的實現步驟
作為提供者為程式開發和部署推送通知,必須通過ios developer program portal獲得ssl證書。每個證書限用於乙個程式,使用程式的bundle id作為標識。證書有兩種用途的 一種是針對sandbox 用於開發和測試 另外一種針對發布產品。這兩種執行環境擁有為各自指定的ip位址並...
iOS推送通知的實現步驟
匯出鑰匙串中證書為p12檔案。進入certificates,identifiers profiles 管理頁面 如下圖 點選identifiers 填寫bundle id note bundle id要和本地需要整合推送功能的專案bundle identifier一致。點選create建立devel...
iOS 推送通知
作為提供者為程式開發和部署推送通知,必須通過ios developer program portal獲得ssl證書。每個證書限用於乙個程式,使用程式的bundle id作為標識。證書有兩種用途的 一種是針對sandbox 用於開發和測試 另外一種針對發布產品。這兩種執行環境擁有為各自指定的ip位址並...