版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.05.14 |
前言
??前一篇已經(jīng)對極光推送產(chǎn)品架構(gòu)和服務(wù)進行了介紹促王,這一篇則只對ios客戶端的集成和使用等狀況進行了說明蝇狼。
1. 極光推送集成(一)
ios SDK概述
這里先給出了兩個鏈接:
一恶阴、JPush ios原理
下面這個圖給出了Jpush的原理冯事。
??從上圖可以看出血公,JPush iOS Push 包括 2 個部分累魔,APNs 推送(代理),與 JPush 應(yīng)用內(nèi)消息吕世。
- 紅色部分是 APNs 推送命辖,JPush 代理開發(fā)者的應(yīng)用(需要基于開發(fā)者提供的應(yīng)用證書)分蓖,向蘋果 APNs 服務(wù)器推送。由 APNs Server 推送到 iOS 設(shè)備上终娃。
- 藍色部分是 JPush 應(yīng)用內(nèi)推送部分棠耕,即 App 啟動時,內(nèi)嵌的 JPush SDK 會開啟長連接到 JPush Server昧辽,從而 JPush Server 可以推送消息到 App 里搅荞。
APNs 通知
??APNs 通知:是指通過向 Apple APNs 服務(wù)器發(fā)送通知框咙,到達 iOS 設(shè)備喇嘱,由 iOS 系統(tǒng)提供展現(xiàn)的推送者铜。用戶可以通過 IOS 系統(tǒng)的 “設(shè)置”-> “通知” 進行設(shè)置放椰,開啟或者關(guān)閉某一個 App 的推送能力砾医。JPush iOS SDK 不負責 APNs 通知的展現(xiàn)如蚜,只是向 JPush 服務(wù)器端上傳 Device Token 信息错邦,JPush 服務(wù)器端代理開發(fā)者向 Apple APNs 推送通知撬呢。
獲取 APNs 推送內(nèi)容
** 應(yīng)用內(nèi)消息**
??應(yīng)用內(nèi)消息:JPush iOS SDK 提供的應(yīng)用內(nèi)消息功能倾芝,在 App 在前臺時能夠收到推送下來的消息。App 可使用此功能來做消息下發(fā)動作潭千。此消息不經(jīng)過 APNs 服務(wù)器刨晴,完全由 JPush 提供功能支持。
獲取應(yīng)用內(nèi)消息推送內(nèi)容
APNs通知與應(yīng)用內(nèi)消息對比
??如果只需要發(fā)送通知茄靠,則可以忽略應(yīng)用內(nèi)消息的處理慨绳。對于兩種消息的代碼處理可以參考API 部分的描述脐雪。
JPush API v3 支持同時一次調(diào)用同時推送 APNs 通知與JPush 應(yīng)用內(nèi)消息战秋。這在某些應(yīng)用場景里是有意義的脂信。
看一下下面二者的區(qū)別。
項目 | APNS | 應(yīng)用內(nèi)消息 |
---|---|---|
推送原則 | 由JPush服務(wù)器發(fā)送至APNS服務(wù)器疯搅,再下發(fā)到手機秉撇。 | 由JPush直接下發(fā)琐馆,每次推送都會嘗試發(fā)送恒序,如果用戶在線則立即收到瘦麸。否則保存為離線。 |
離線消息 | 離線消息由APNS服務(wù)器緩存按照Apple的邏輯處理歧胁。 | 用戶不在線JPush server 會保存離線消息,時長默認保留一天滋饲。離線消息保留5條。 |
推送與證書環(huán)境 | 應(yīng)用證書和推送指定的iOS環(huán)境匹配才可以收到喊巍。 | 自定義消息與APNS證書環(huán)境無關(guān)屠缭。 |
接收方式 | 應(yīng)用退出,后臺以及打開狀態(tài)都能收到APNS | 需要應(yīng)用打開崭参,與JPush 建立連接才能收到呵曹。 |
展示效果 | 如果應(yīng)用后臺或退出,會有系統(tǒng)的APNS提醒何暮。如果應(yīng)用處于打開狀態(tài)奄喂,則不展示跨新。 | 非APNS,默認不展示⌒矶觯可通過獲取接口自行編碼處理。 |
處理函數(shù) | Apple提供的接口:didReceiveRemoteNotification | JPush提供的接口:networkDidReceiveMessage |
二、iOS SDK 集成
請參考以下文檔與教程巢掺,來集成 IOS SDK轧苫。
三、iOS SDK 說明
iOS 版本支持
- 支持的iOS版本為6.0及以上版本。
- 支持iOS版本為10.0以上的版本時需知重罪。
- Notification Service Extension證書配置時需要注意 BundleID不能與Main Target一致,證書需要單獨額外配置息裸。
- 請將Notification Service Extension中的Deployment Target設(shè)置為10.0访圃。
- 在XCode7或者更低的版本中刪除Notification Service Extension所對應(yīng)的Target。
- 在XCode7或者更低的版本中請將引入的'UserNotifications.framework'刪除格了。
組成
- 頭文件 JPUSHService.h
- 靜態(tài)庫文件 jpush-ios-x.x.x.a悄但,jcore-ios-x.x.x.a
注意事項
四、JPush APNs 通知的意義
iOS 平臺上推送通知,只有 APNs 這個官方的通道,是可以隨時送達的。一般開發(fā)者都是自己部署應(yīng)用服務(wù)器向 APNs Server 推送。
JPush iOS 推送相比直接向 APNs 推送有什么好處呢?
- 減少開發(fā)及維護成本
- 應(yīng)用開發(fā)者不需要去開發(fā)維護自己的推送服務(wù)器與 APNs 對接。
- 集成了 JPush iOS SDK 后不必自己維護更新 device token。
- 通過 JPush 的 Web Portal 直接推送,也可以調(diào)用JPush的 HTTP 協(xié)議 API 來完成,開發(fā)工作量大大減少。
- 減少運營成本
- 極光推送支持一次推送哪工,同時向 Android, iOS, WinPhone 三個平臺撤嫩。支持統(tǒng)一的 API 與推送界面程奠。
- 極光推送提供標簽、別名綁定機制垫桂,以及提供了非常細分的用戶分群方式碱呼,運營起來非常簡單馋袜、直觀。
- 提供應(yīng)用內(nèi)推送:
- 除了使得 APNs 推送更簡單嗜闻,也另外提供應(yīng)用內(nèi)消息推送吹缔。這在類似于聊天的場景里很有必要
五、JPush APNs 實現(xiàn)
具體實現(xiàn)可以參考另外一篇博客文章糕簿。
后記
??這一篇說的是極光推送的概覽咕别,下一篇說一下ios客戶端的集成,謝謝大家的支持勾怒。