iOS Apns遠程推送

iOS Apns遠程推送

遠程推送應用配置過程xcode

一. 建立支持遠程推送功能的App ID

添加App ID服務器

設置Bundle ID,不能設置通配ID網絡

勾選遠程通知選項,能夠在配置App ID的時候勾選,也能夠在原有App ID的基礎上進行更改。併發

勾選遠程通知選項ide

勾選遠程通知選項ui

二. 申請開發者證書,並選中剛剛建立的App ID

建立遠程推送證書編碼

建立推送證書spa

選擇咱們剛纔配置好,勾選推送選項的App ID.代理

選擇App IDcode

選擇咱們電腦本地使用證書助理生成的CSR文件

選擇後綴名爲.certSigningRequest的文件

三. 下載CER文件,並導入鑰匙串管理

下載證書

四. 咱們須要從新生成一下配置文件

生成配置文件

選擇此Provisioning Profile的環境後點擊Continue

點擊Continue

選擇要建立Provisioning Profile的App ID後點擊Continue

點擊Continue

選擇所屬的開發者證書,(這裏建立了多個開發者證書,建議只建立一個,方便管理)爲了方便。這裏選擇Select All,再點擊Continue進入下一步。

點擊Continue進入下一步

爲該Provisioning Profile選擇將要安裝的設備(通常選擇Select All),點擊Continue

選擇Select All

給該Provisioning Profile填寫Profile Name,點擊generate完成建立

完成建立

建立完成,點擊download下載到本地。雙擊下載下來的Provisioning Profile,添加到xcode。

五. 將推送證書導出後綴爲.p12的文件,上傳服務器。在團隊開發中若是遇到多人開發,也須要給同事導出.p12證書給他人使用。

 

注意:導出證書的時候,儘可能不要展開私鑰。

導出後綴爲.p12的文件

導出證書

上傳給服務器時,須要告訴服務器開發同事證書的密碼。

設置密碼

六. 遠程推送應用程序開發過程

具體怎麼新建應用程序和其餘開發就很少說了,直接說和推送相關的。

打開info.plist文件的Bundle identifier選項,將配置推送證書的App ID填寫進去

App ID填寫

點擊項目,進入Build Setting 界面,向下滑動,去到Code Signing 配置證書

配置證書

須要在Xcode 中修改應用的 Capabilities 開啓Remote notifications

開啓Remote notifications

七. 獲取DeviceToken,併發送給服務器

因爲iOS系統權限限制,須要註冊遠程通知,咱們直接上代碼

註冊遠程通知

註冊通知以後,蘋果會將DeviceToken經過代理方法的形式返回相應的代理方法。注意:必定要聯網!

這個代理方法會將手機的UDID + 應用程序的Bundle ID發送給蘋果,蘋果進行某種編碼以後再經過代理方法返回。

deviceToken = (手機的UDID + 應用程序的Bundle ID) 蘋果編碼

返回的deviceToken是NSData類型的,大概格式以下:<7040f7d5 5a974598 c5cf31b5 3e340b39 68affd25 122f0ce1 3f315226 396c2e5b>

註冊通知後,在代理方法中接收到蘋果返回的deviceToken

獲取到蘋果發送的deviceToken

實現接收到遠程通知的代理方法,觸發方法和本地通知流程一致

iOS8之前使用這個方法:

獲取推送消息

iOS8以後使用這個方法:

獲取推送消息

執行completionHandler有兩個目的

1> 系統會估量App消耗的電量,並根據傳遞的UIBackgroundFetchResult 參數記錄新數據是否可用

2> 調用完成的處理代碼時,應用的界面縮略圖會自動更新

注意:接收到遠程通知到執行完網絡請求之間的時間不能超過30秒

相關文章
相關標籤/搜索