个推SDK最新版本更新
个推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:");
- 新增*[GeTuiSdk registerRemoteNotification:]接口,用于开启远程通知权限。需要在[GeTuiSdk startSdkWithAppId*启动SDK之后执行,如下代码:
[GeTuiSdk startSdkWithAppId:kGtAppId
appKey:kGtAppKey
appSecret:kGtAppSecret
delegate:self];
// 新增方法 用于开启远程通知权限
UNAuthorizationOptions types = (UNAuthorizationOptionBadge |
UNAuthorizationOptionAlert |
UNAuthorizationOptionSound);
[GeTuiSdk registerRemoteNotification:types];
-
新增回调*GeTuiSdkNotificationCenter: willPresentNotification: completionHandler:,*用于展示APNs通知。
-
新增回调GeTuiSdkDidReceiveSlience: fromGetui: offLine: appId: taskId: msgId: fetchCompletionHandler:,用于接收个推透传消息。
-
新增回调GeTuiSdkDidReceiveNotification: notificationCenter: response: fetchCompletionHandler:,用于接收APNs通知。
上述第3个新增接口代替了第5个废弃的接口
- 通过个推发送透传消息时,如果下发时cid在线,GeTuiSdkDelegate将收到回调且offLine=NO。如果下发时cid离线,消息将存入个推离线服务器,通过苹果APNS发送静默消息通知。 cid在线后将收到本条消息且offLine=YES。
- 本方法接管了系统的application: didReceiveRemoteNotification:
fetchCompletionHandler:通知回调,处理来自苹果APNs的静默消息通知回调。 -
当在线状态处于前台和后台时,有消息来只会调新的透传消息而不会走系统的application: didReceiveRemoteNotification:
fetchCompletionHandler:
已废弃
// ~~(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 推送服务框架如下图所示:
随笔记录,如有问题请指教哦!
本文地址:https://blog.csdn.net/xibeier_jw/article/details/114318711
上一篇: C++ 输入流
下一篇: ios15图片文字识别怎么弄
推荐阅读