極光推送流程


階段一:provider把要發送的消息、目的標識打包,發送給APNS

階段二:APNS在自身的已注冊Push服務的iOS設備列表中,查找響應標識的iOS設備,並將消息發送到iOS設備。

階段三:iOS設備把發送的消息傳遞給相應的應用程序,並且按照設定彈出push通知。

 

a.首先是應用程序注冊消息推送.

b.iOS跟APNS要devicetoken。應用程序接受devicetoken.

c.應用程序將devicetoken發送給JPush服務端程序.

d.server調用極光SDK將推送消息及相關信息發送給JPush.

e.Jpush服務端程序向APNS發送消息.

f.APNS服務將消息發送給iphone應用程序。

 

  1. 申請極光帳號,創建應用。創建后自動生成AppKey用以標識該應用,需要把它配置到項目中。
  2. 上傳配推送證書.P12。開發環境顯示已驗證,表示上傳成功。 證書ID必須與項目中的Bundle identifier一致。
  3. 導入API開發包到應用程序項目.

將SDK包解壓,將解壓后的lib文件夾添加到項目中。

必要的框架

CFNetwork.Framework

CoreTelephony.framework

SystemConfiguration.framework

Foundation.frmework

UIKit.framework

Security.framework

Xcode7需要的是libz.tbd;Xcode7以下版本是libz.Dylib

 

  1. 在項目中創建Push.Plist文件。

CHANNEL   指名應用程序的下載渠道。

APP_KEY 填寫管理portal上創建應用后自動生成的APPkey值。確保雙方一致。

5.在項目中點擊點擊info,找到Application requires iPhone environment 選擇yes

 

APS_FOR_PRODUCTION

0表示采用的是開發者證書,1表示采用生產證書發布應用

 

 

客戶端設置

開啟Remote notifications  需要在xcode中修改應用的capabilities開啟Remote notifications。

 

當注冊了Backgroud Modes -> Remote notifications 后,notification 處理函數一律切換到下面函數,后台推送代碼也在此函數中調用。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler;

 

+ (void)registerDeviceToken:(NSData *)deviceToken;

 

 @abstract 處理收到的 APNs 消息

+ (void)handleRemoteNotification:(NSDictionary *)remoteInfo;

 

- (void)application:(UIApplication *)application

    didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken ;

 

當你的iPhone收到推送信息后到底會發生什么呢?總共有三種可能性:

 

app在前台運行. 接收到推送信息時屏幕上不會有任何顯示,也不會有提示音,但你的app delegate會收到這個推送信息。你可以在這里加入代碼來處理接收到的信息。

app不在前台運行。iPhone可能停留在主界面或者另一個app正在運行.一個提示窗口會彈出,可能伴隨着提示音。用戶可以點擊Close按鈕來關閉這個窗口或者點擊View按鈕來打開你的app。如果用戶點擊的時Close按鈕,那你的app不會處理這個推送的信息。

iPhone在鎖屏狀態下. 同樣一個提示窗口彈出,並伴隨着提示音,但是這個窗口不會有Close和View按鈕。屏幕解鎖后會自動進入你的app。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM