關於JPush(極光推送)那些事(上)

關於JPush(極光推送)那些事(上)

可以看出,JPush iOS Push 包括 2 個部分,APNs 推送(代理)與 JPush 應用內消息。

紅色部分是 APNs 推送,JPush 代理開發者的應用(需要基於開發者提供的應用證書),向蘋果 APNs 服務器推送。由 APNs Server 推送到 iOS 設備上。

藍色部分是 JPush 應用內推送部分,即 App 啟動時,內嵌的 JPush SDK 會開啟長連接到 JPush Server,從而 JPush Server 可以推送消息到 App 裡

APNs 通知

APNs 通知:是指通過向 Apple APNs 服務器發送通知,到達 iOS 設備,由 iOS 系統提供展現的推送。用戶可以通過 IOS 系統的 “設置” >> “通知” 進行設置,開啟或者關閉某一個 App 的推送能力。

JPush iOS SDK 不負責 APNs 通知的展現,只是向 JPush 服務器端上傳 Device Token 信息,JPush 服務器端代理開發者向 Apple APNs 推送通知。

獲取 APNs 推送內容

應用內消息

應用內消息:JPush iOS SDK 提供的應用內消息功能,在 App 在前臺時能夠收到推送下來的消息。App 可使用此功能來做消息下發動作。

此消息不經過 APNs 服務器,完全由 JPush 提供功能支持。

APNs通知與應用內消息對比

如果只需要發送通知,則可以忽略應用內消息的處理。對於兩種消息的代碼處理可以參考API 部分的描述。

JPush API v3 支持同時一次調用同時推送 APNs 通知與 JPush 應用內消息。這在某些應用場景裡是有意義的。

關於JPush(極光推送)那些事(上)

OK,原理了解之後,下面開始集成.

  • 1:下載JPush的SDK
  • 2:在JPush平臺註冊應用,這裡的目的:
  • A:交付授權,因為在這裡開發者需要上傳應用的推送開發證書,推送生產證書,這樣JPush平臺就能去蘋果服務器拿去一個推送關鍵字段:DeviceToken,相當於授權碼.
  • B:平臺註冊,還會生成一個:AppKey和一個MasterSecret.這兩個東西相當於一個登陸賬號,一個登陸密碼.這樣生成出來,JPush就能根據MasterSecret.去校驗** AppKey,然後去找綁定在這個 AppKey上面的生產,開發證書授權的DeviceToken**去蘋果服務器推送消息.
關於JPush(極光推送)那些事(上)

關於JPush(極光推送)那些事(上)

  • 3 導入SDK

將SDK包解壓,在Xcode中選擇“Add files to 'Your project name'...”,將解壓後的lib子文件夾(包含JPUSHService.h、jpush-ios-x.x.x.a,jcore-ios-x.x.x.a)添加到你的工程目錄中。

添加Framework:

CFNetwork.framework

CoreFoundation.framework

CoreTelephony.framework

SystemConfiguration.framework

CoreGraphics.framework

Foundation.framework

UIKit.framework

Security.framework

libz.tbd (Xcode7以下版本是libz.dylib)

AdSupport.framework (獲取IDFA需要;如果不使用IDFA,請不要添加)


UserNotifications.framework (Xcode8及以上)

libresolv.tbd (JPush 2.2.0及以上版本需要, Xcode7以下版本是libresolv.dylib)

*4:編譯與開啟推送功能

關於JPush(極光推送)那些事(上)

5:ATS

關於JPush(極光推送)那些事(上)

6:添加頭文件和添加代理

請將以下代碼添加到 AppDelegate.m 引用頭文件的位置。

關於JPush(極光推送)那些事(上)

  • 7:核心代碼: 添加初始化代碼


分享到:


相關文章: