前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IM在群组中接收后端发送来的消息,需要显示还需要保存在本地,应该怎么处理呢?

IM在群组中接收后端发送来的消息,需要显示还需要保存在本地,应该怎么处理呢?

原创
作者头像
小明同学接音视频
发布2020-12-13 22:07:31
1.9K0
发布2020-12-13 22:07:31
举报
文章被收录于专栏:iOS 音视频接入-TRTC

情景再现

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];

完整代码截图,这样就实现了保存数据并展示给自己看。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 情景再现
  • 保存本地并显示消息
    • 使用方法
    相关产品与服务
    即时通信 IM
    即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持 Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、好友与资料、消息漫游、群组管理、会话管理、直播弹幕、内容审核和推送等能力。适用于直播互动、电商带货、客服咨询、社交沟通、企业办公、互动游戏、医疗健康等场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档