欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

个推SDK最新版本更新

程序员文章站 2022-03-08 15:37:53
个推SDK版本更新说明本项目版本2.4.4, 2.5.2.0 以下版本的用户,升级版本清注意以下更新:一、个推SDK废弃接口有以下5个:1.恢复SDK运行+(void)resume DEPRECATED_MSG_ATTRIBUTE("已废弃");2.SDK发送上行消息结果+ (void)GeTuiSdkDidSendMessage:(NSString *)messageId result:(int)result DEPRECATED_MSG_ATTRIBUTE("Please use -[...

个推SDK最新版本说明

本人个推SDK版本2.4.4.0, sdk版本是2.5.2.0 以下版本的用户,升级版本清注意以下更新:

1.恢复SDK运行

+(void)resume DEPRECATED_MSG_ATTRIBUTE("已废弃");

2.SDK发送上行消息结果

+ (void)GeTuiSdkDidSendMessage:(NSString *)messageId result:(int)result DEPRECATED_MSG_ATTRIBUTE("Please use -[delegate GeTuiSdkDidSendMessage:msg result: error:]");

3.向个推服务器注册DeviceToken–已废弃

 + (BOOL)registerDeviceToken:(NSString *)deviceToken DEPRECATED_MSG_ATTRIBUTE("已废弃");

4.向个推服务器注册DeviceToken,可以未启动SDK就调用该方法。 注:Xcode11、iOS13 DeviceToken适配,至少使用“SDK-2.4.1.0”版本

  • 必须使用个推注册远程通知,否则通过个推代理无法获取部分APNs回调!!
  • 注意,个推内部自动关联DeviceToken和cid,无需开发者手动调用[GeTuiSdk registerDeviceTokenData:deviceToken]关联
  • 该方法需要在主线程中调用。个推内部兼容iOS10以下注册远程通知逻辑,开发者无需特殊处理。
+ (BOOL)registerDeviceTokenData:(NSData *)deviceToken DEPRECATED_MSG_ATTRIBUTE("已废弃");

5.SDK通知收到个推推送的透传消息

  - (void)GeTuiSdkDidReceivePayloadData:(NSData *)payloadData
                            andTaskId:(NSString *)taskId
                             andMsgId:(NSString *)msgId
                           andOffLine:(BOOL)offLine
                          fromGtAppId:(NSString *)appId DEPRECATED_MSG_ATTRIBUTE("使用GeTuiSdkDidReceiveSlience:fromGetui:offLine:appId:taskId:msgId:fetchCompletionHandler:");
  1. 新增*[GeTuiSdk registerRemoteNotification:]接口,用于开启远程通知权限。需要在[GeTuiSdk startSdkWithAppId*启动SDK之后执行,如下代码:
  [GeTuiSdk startSdkWithAppId:kGtAppId
                       appKey:kGtAppKey
                    appSecret:kGtAppSecret
                     delegate:self];
  // 新增方法 用于开启远程通知权限
  UNAuthorizationOptions types = (UNAuthorizationOptionBadge |
                                    UNAuthorizationOptionAlert |
                                    UNAuthorizationOptionSound);
  [GeTuiSdk registerRemoteNotification:types];
  1. 新增回调*GeTuiSdkNotificationCenter: willPresentNotification: completionHandler:,*用于展示APNs通知。

  2. 新增回调GeTuiSdkDidReceiveSlience: fromGetui: offLine: appId: taskId: msgId: fetchCompletionHandler:,用于接收个推透传消息。

  3. 新增回调GeTuiSdkDidReceiveNotification: notificationCenter: response: fetchCompletionHandler:,用于接收APNs通知。

上述第3个新增接口代替了第5个废弃的接口

  • 通过个推发送透传消息时,如果下发时cid在线,GeTuiSdkDelegate将收到回调且offLine=NO。如果下发时cid离线,消息将存入个推离线服务器,通过苹果APNS发送静默消息通知。 cid在线后将收到本条消息且offLine=YES。
  • 本方法接管了系统的application: didReceiveRemoteNotification:
    fetchCompletionHandler:通知回调,处理来自苹果APNs的静默消息通知回调。
  • 当在线状态处于前台和后台时,有消息来只会调新的透传消息而不会走系统的application: didReceiveRemoteNotification:
    fetchCompletionHandle
    r:
已废弃
// ~~(void)GeTuiSdkDidReceivePayloadData:(NSData*)payloadData
//                            andTaskId:(NSString*)taskId
//                             andMsgId:(NSString*)msgId
//                           andOffLine:(BOOL)offLine
//                          fromGtAppId:(NSString*)appId~~ ; 
新增
/** 收到透传消息 
* @param userInfo    推送消息内容
* @param fromGetui   YES: 个推通道  NO:苹果apns通道
* @param offLine     是否是离线消息,YES.是离线消息
* @param appId       应用的appId
* @param taskId      推送消息的任务id
* @param msgId       推送消息的messageid
* @param completionHandler 用来在后台状态下进行操作(通过苹果apns通道的消息 才有此参数值)
*/
- (void)GeTuiSdkDidReceiveSlience:(NSDictionary*)userInfo
                        fromGetui:(BOOL)fromGetui
                          offLine:(BOOL)offLine
                            appId:(NSString*)appId
                           taskId:(NSString*)taskId
                            msgId:(NSString*)msgId
           fetchCompletionHandler:
               (void (^)(UIBackgroundFetchResult))completionHandler {
  // [ GTSdk ]:汇报个推自定义事件(反馈透传消息)
  [GeTuiSdk sendFeedbackMessage:kGeTuiAppActionid
                      andTaskId:taskId
                       andMsgId:msgId];

  if (completionHandler) {
    //    UIBackgroundFetchResultNewData, 成功接收到数据
    //    UIBackgroundFetchResultNoData,  没有接收到数据
    //    UIBackgroundFetchResultFailed   接受失败
    if (userInfo) {
      completionHandler(UIBackgroundFetchResultNewData);
    } else{
      completionHandler(UIBackgroundFetchResultNoData);
    }
  }
}

第4个新增回调接口

  • 支持iOS10及以上,App在前台时收到APNs通知后的展示回调。用户可以设定当前通知的展示权限。
  • 新的SDK中本方法接管了系统的userNotificationCenter: willPresentNotification: withCompletionHandler:展示回调;
  • 也就是当点击推送栏消息打开时,不再走系统的userNotificationCenter: willPresentNotification: withCompletionHandler:回调,走此方法进行回调处理。
/** 收到通知信息 点击推送消息回调
 *  ~~代替了userNotificationCenter:(UNUserNotificationCenter*)center
    didReceiveNotificationResponse:(UNNotificationResponse*)response方法~~ 
* @param userInfo apns通知内容
* @param center UNUserNotificationCenter(iOS10及以上版本)
* @param response UNNotificationResponse(iOS10及以上版本)
* @param completionHandler 用来在后台状态下进行操作(iOS10以下版本)
*/
- (void)GeTuiSdkDidReceiveNotification:(NSDictionary*)userInfo
                    notificationCenter:(UNUserNotificationCenter*)center
                              response:(UNNotificationResponse*)response
                fetchCompletionHandler:
                    (void (^)(UIBackgroundFetchResult))completionHandler {
  ISLog(@"center content : %@", response.notification.request.content.userInfo);
  // TODO:自定义操作,点击推送的消息后进行处理


   // [ GTSdk ]:将收到的APNs信息传给个推统计
  [GeTuiSdk
      handleRemoteNotification:response.notification.request.content.userInfo];
       if (completionHandler) {
    //    UIBackgroundFetchResultNewData, 成功接收到数据
    //    UIBackgroundFetchResultNoData,  没有接收到数据
    //    UIBackgroundFetchResultFailed   接受失败
       if (userInfo) {
           completionHandler(UIBackgroundFetchResultNewData);
       } else{
          completionHandler(UIBackgroundFetchResultNoData);
      }
    }
 }
 新SDK中不再回调
// iOS 10及以上 收到APNs推送并点击推送消息后回调---
~~- (void)userNotificationCenter:(UNUserNotificationCenter*)center
    didReceiveNotificationResponse:(UNNotificationResponse*)response
             withCompletionHandler:(void (^)(void))completionHandler {
       }~~ 

个推 iOS 推送服务框架如下图所示:
个推SDK最新版本更新

集成指南

API接口

常见问题

随笔记录,如有问题请指教哦!

本文地址:https://blog.csdn.net/xibeier_jw/article/details/114318711

相关标签: 个推SDK ios