極光推送集成(二)

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.05.14

前言

??前一篇已經(jīng)對(duì)極光推送產(chǎn)品架構(gòu)和服務(wù)進(jìn)行了介紹,這一篇?jiǎng)t只對(duì)ios客戶端的集成和使用等狀況進(jìn)行了說(shuō)明。
1. 極光推送集成(一)

ios SDK概述

這里先給出了兩個(gè)鏈接:

一、JPush ios原理

下面這個(gè)圖給出了Jpush的原理。

JPush原理

??從上圖可以看出,JPush iOS Push 包括 2 個(gè)部分,APNs 推送(代理),與 JPush 應(yīng)用內(nèi)消息。

  • 紅色部分是 APNs 推送,JPush 代理開(kāi)發(fā)者的應(yīng)用(需要基于開(kāi)發(fā)者提供的應(yīng)用證書),向蘋果 APNs 服務(wù)器推送。由 APNs Server 推送到 iOS 設(shè)備上。
  • 藍(lán)色部分是 JPush 應(yīng)用內(nèi)推送部分,即 App 啟動(dòng)時(shí),內(nèi)嵌的 JPush SDK 會(huì)開(kāi)啟長(zhǎng)連接到 JPush Server,從而 JPush Server 可以推送消息到 App 里。

APNs 通知

??APNs 通知:是指通過(guò)向 Apple APNs 服務(wù)器發(fā)送通知,到達(dá) iOS 設(shè)備,由 iOS 系統(tǒng)提供展現(xiàn)的推送。用戶可以通過(guò) IOS 系統(tǒng)的 “設(shè)置”-> “通知” 進(jìn)行設(shè)置,開(kāi)啟或者關(guān)閉某一個(gè) App 的推送能力。JPush iOS SDK 不負(fù)責(zé) APNs 通知的展現(xiàn),只是向 JPush 服務(wù)器端上傳 Device Token 信息,JPush 服務(wù)器端代理開(kāi)發(fā)者向 Apple APNs 推送通知。
獲取 APNs 推送內(nèi)容

** 應(yīng)用內(nèi)消息**

??應(yīng)用內(nèi)消息:JPush iOS SDK 提供的應(yīng)用內(nèi)消息功能,在 App 在前臺(tái)時(shí)能夠收到推送下來(lái)的消息。App 可使用此功能來(lái)做消息下發(fā)動(dòng)作。此消息不經(jīng)過(guò) APNs 服務(wù)器,完全由 JPush 提供功能支持。
獲取應(yīng)用內(nèi)消息推送內(nèi)容

APNs通知與應(yīng)用內(nèi)消息對(duì)比

??如果只需要發(fā)送通知,則可以忽略應(yīng)用內(nèi)消息的處理。對(duì)于兩種消息的代碼處理可以參考API 部分的描述。
JPush API v3 支持同時(shí)一次調(diào)用同時(shí)推送 APNs 通知與JPush 應(yīng)用內(nèi)消息。這在某些應(yīng)用場(chǎng)景里是有意義的。

看一下下面二者的區(qū)別。

項(xiàng)目 APNS 應(yīng)用內(nèi)消息
推送原則 由JPush服務(wù)器發(fā)送至APNS服務(wù)器,再下發(fā)到手機(jī)。 由JPush直接下發(fā),每次推送都會(huì)嘗試發(fā)送,如果用戶在線則立即收到。否則保存為離線。
離線消息 離線消息由APNS服務(wù)器緩存按照Apple的邏輯處理。 用戶不在線JPush server 會(huì)保存離線消息,時(shí)長(zhǎng)默認(rèn)保留一天。離線消息保留5條。
推送與證書環(huán)境 應(yīng)用證書和推送指定的iOS環(huán)境匹配才可以收到。 自定義消息與APNS證書環(huán)境無(wú)關(guān)。
接收方式 應(yīng)用退出,后臺(tái)以及打開(kāi)狀態(tài)都能收到APNS 需要應(yīng)用打開(kāi),與JPush 建立連接才能收到。
展示效果 如果應(yīng)用后臺(tái)或退出,會(huì)有系統(tǒng)的APNS提醒。如果應(yīng)用處于打開(kāi)狀態(tài),則不展示。 非APNS,默認(rèn)不展示??赏ㄟ^(guò)獲取接口自行編碼處理。
處理函數(shù) Apple提供的接口:didReceiveRemoteNotification JPush提供的接口:networkDidReceiveMessage

二、iOS SDK 集成

請(qǐng)參考以下文檔與教程,來(lái)集成 IOS SDK。


三、iOS SDK 說(shuō)明

iOS 版本支持

  • 支持的iOS版本為6.0及以上版本。
  • 支持iOS版本為10.0以上的版本時(shí)需知。
    • Notification Service Extension證書配置時(shí)需要注意 BundleID不能與Main Target一致,證書需要單獨(dú)額外配置。
    • 請(qǐng)將Notification Service Extension中的Deployment Target設(shè)置為10.0。
    • 在XCode7或者更低的版本中刪除Notification Service Extension所對(duì)應(yīng)的Target。
    • 在XCode7或者更低的版本中請(qǐng)將引入的'UserNotifications.framework'刪除。

組成

  • 頭文件 JPUSHService.h
  • 靜態(tài)庫(kù)文件 jpush-ios-x.x.x.a,jcore-ios-x.x.x.a

注意事項(xiàng)


四、JPush APNs 通知的意義

iOS 平臺(tái)上推送通知,只有 APNs 這個(gè)官方的通道,是可以隨時(shí)送達(dá)的。一般開(kāi)發(fā)者都是自己部署應(yīng)用服務(wù)器向 APNs Server 推送。

JPush iOS 推送相比直接向 APNs 推送有什么好處呢?

  • 減少開(kāi)發(fā)及維護(hù)成本
    • 應(yīng)用開(kāi)發(fā)者不需要去開(kāi)發(fā)維護(hù)自己的推送服務(wù)器與 APNs 對(duì)接。
    • 集成了 JPush iOS SDK 后不必自己維護(hù)更新 device token。
    • 通過(guò) JPush 的 Web Portal 直接推送,也可以調(diào)用JPush的 HTTP 協(xié)議 API 來(lái)完成,開(kāi)發(fā)工作量大大減少。
  • 減少運(yùn)營(yíng)成本
    • 極光推送支持一次推送,同時(shí)向 Android, iOS, WinPhone 三個(gè)平臺(tái)。支持統(tǒng)一的 API 與推送界面。
    • 極光推送提供標(biāo)簽、別名綁定機(jī)制,以及提供了非常細(xì)分的用戶分群方式,運(yùn)營(yíng)起來(lái)非常簡(jiǎn)單、直觀。
  • 提供應(yīng)用內(nèi)推送:
    • 除了使得 APNs 推送更簡(jiǎn)單,也另外提供應(yīng)用內(nèi)消息推送。這在類似于聊天的場(chǎng)景里很有必要

五、JPush APNs 實(shí)現(xiàn)

具體實(shí)現(xiàn)可以參考另外一篇博客文章。

后記

??這一篇說(shuō)的是極光推送的概覽,下一篇說(shuō)一下ios客戶端的集成,謝謝大家的支持。

風(fēng)景
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 版本記錄 前言 ??現(xiàn)在很多APP都有推送功能,其中極光推送就是很多APP的首選。我們最近的幾個(gè)APP也是用的極光...
    刀客傳奇閱讀 8,675評(píng)論 0 8
  • 版本記錄 前言 前一篇已經(jīng)對(duì)ios的SDK進(jìn)行了研究,這一篇?jiǎng)t對(duì)iOS SDK 常見(jiàn)問(wèn)題進(jìn)行說(shuō)明。1. 極光推送集...
    刀客傳奇閱讀 1,330評(píng)論 0 1
  • ** Tips:** 不同版本極光推送SDK集成各有差異,各位童鞋在集成時(shí)一定要注意版本號(hào),本人集成的是基于 極光...
    anyurchao閱讀 2,509評(píng)論 3 26
  • 所選依賴: 工具類:一、 package com.xxx.core.util.push.enums; /** 配置...
    Y_LY閱讀 1,987評(píng)論 0 2
  • iOS不倒,博客不停JPush的文檔說(shuō)明挺不錯(cuò),非常詳細(xì)!為什么還要寫這篇簡(jiǎn)書?主要是為了記錄自己開(kāi)發(fā)過(guò)程,也給一...
    Cooci_和諧學(xué)習(xí)_不急不躁閱讀 7,083評(píng)論 22 21

友情鏈接更多精彩內(nèi)容