情景再现
App内有一个领取红包的消息通知,是通过服务端推送过来的消息(服务端使用的方法如下图)
目前已经知道IMSDK会有收到群内系统推送的方法(如下)
在TUIKit中回调了这个方法后发送了一个通知
如果您是用了TUIkit的话,您只要注册这个通知即可接受到消息,并调用自己的方法
保存本地并显示消息
现将这条消息保存到本地,我们可以使用一下api来保存消息
代码语言:objective-c复制/**
* 4.8 向群组消息列表中添加一条消息
*
* 该接口主要用于满足向群组聊天会话中插入一些提示性消息的需求,比如“您已经退出该群”,这类消息有展示
* 在聊天消息区的需求,但并没有发送给其他人的必要。
* 所以 insertGroupMessageToLocalStorage() 相当于一个被禁用了网络发送能力的 sendMessage() 接口。
*
* @return msgID 消息唯一标识
* @note 通过该接口 save 的消息只存本地,程序卸载后会丢失。
*/
- (NSString *)insertGroupMessageToLocalStorage:(V2TIMMessage *)msg to:(NSString *)groupID sender:(NSString *)sender succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
使用方法
创建一个自定义消息(消息类型可根据您自己的实际情况选择)
代码语言:objective-c复制 NSDictionary *dict = @{@"test2":@"1223455",
@"test1":@"1223455",
@"test3":@"1223455",
@"test4":@"您已成功领取了1223455用户的红包",
@"test5":@"1223455",
@"test6":@"1223455",
};
NSData *data= [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
V2TIMMessage *message = [[V2TIMManager sharedInstance] createCustomMessage:data];
将消息保存到本地
代码语言:objective-c复制 NSString *string = [[V2TIMManager sharedInstance] insertGroupMessageToLocalStorage:message to:groupId sender:@" " succ:^{
} fail:^(int code, NSString *desc) {
}];
显示消息,模拟收到一条新消息即可
代码语言:objective-c复制 [[NSNotificationCenter defaultCenter] postNotificationName:TUIKitNotification_TIMMessageListener object:message];
完整代码截图,这样就实现了保存数据并展示给自己看。