iOS個推2.4.1更新2.5.3版本的更新及學習總結

iOS個推(GTSDK)2.4.1更新2.5.3版本的更新及學習總結

個推原理

my-logo.png

  1. 首先從服務器發送推送消息到個推服務器,個推內部再判斷用戶是否在線,若是在線則將本次推送內容調用應用內實現的代理方法,若是不在線,則會把本次推送經過apns服務器推進到蘋果服務器,再由蘋果服務下發通知。

新舊版本更新區別

通知消息

  1. 舊版處理邏輯
當使用2.4.1的時候後端發送通知消息不須要作任何處理。
由於只有當程序進入後臺只會纔會有消息推送彈窗,程序進入前臺的時候收到通知消息是不會有消息接送彈窗
複製代碼
  1. 新版新增一個註冊通知方法和一個代理方法
註冊通知方法
+ (void)registerRemoteNotification:(UNAuthorizationOptions)types;
複製代碼

當開發者須要在應用前臺的時候對接收到推進作處理的話須要先調用本次方法註冊通知
後端

接收推送代理方法
- (void)GeTuiSdkNotificationCenter:(UNUserNotificationCenter *)center      
           willPresentNotification:(UNNotification *)notification 
           completionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler;
複製代碼

若服務器下發通知消息,則應用在線且調用了註冊方法註冊了通知則走本次方法.個推添加本次方法優勢在於,能夠給開發者本身處理在程序前臺的時候是否設置彈窗、聲音和紅點等操做。好比在直播過程當中,收到消息若不想有彈窗顯示,則只需在調用completionHandler的時候不加入UNNotificationPresentationOptionAlert便可。
服務器

透傳消息(前臺)

  1. 舊版接收透傳代理方法
- (void)GeTuiSdkDidReceivePayloadData:(NSData *)payloadData 
                            andTaskId:(NSString *)taskId 
                             andMsgId:(NSString *)msgId 
                           andOffLine:(BOOL)offLine fromGtAppId:(NSString *)appId;
複製代碼
  1. 新版接收透傳代理方法
- (void)GeTuiSdkDidReceiveSlience:(NSDictionary *)userInfo
                        fromGetui:(BOOL)fromGetui
                          offLine:(BOOL)offLine
                            appId:(nullable NSString *)appId
                           taskId:(nullable NSString *)taskId
                            msgId:(nullable NSString *)msgId
           fetchCompletionHandler:(nullable void (^)(UIBackgroundFetchResult))completionHandler;
複製代碼
  1. 新版舊版在功能上是相同的,均只是下發透明傳送消息,而不一樣的點在於,新版將payloadData做爲字典的其中一個字段再把字典返回出來。而當應用進入後臺的時候服務器發送透傳消息則會經過apns下發給用戶,因此進入後臺的時候收到透傳消息是可以有彈窗消息。

iOS接收消息自定義鈴聲設置

  1. 將音頻文件添加到項目的根目錄,
  2. Build Phases->Copy Bundle Resources中加入剛剛的音頻文件
  3. 推送的時候在apninfo中的setsound中設置文件名全稱
  4. 設置完就能在推送的時候播放自定義鈴聲
相關文章
相關標籤/搜索