消息更新
更新时间: 2024/11/21 15:43:10
网易云信 NIM iOS SDK 支持更新消息。为了保证存储消息的完整性,只支持更新消息的本地扩展字段 LocalExt
和自定义消息的附件对象 NIMCustomObject
。
请不要对通知消息进行更新。
前提条件
已调用 addDelegate:
方法添加委托,注册“消息发送完成回调”函数(sendMessage:didCompleteWithError:
),且已通过该回调函数判断消息已发送完成。
实现方法
sequenceDiagram
note over NIM SDK: 初始化
发送方 ->> NIM SDK: 初始化SDK
接收方 ->> NIM SDK: 初始化SDK
note over NIM SDK: 发送方注册回调函数并登录
发送方 ->> NIM SDK: 监听"即将发送消息"事件<br>&消息发送进度<br>&"消息发送完成"事件
发送方 ->> NIM SDK: 登录
note over NIM SDK: 接收方注册回调函数并登录
接收方 ->> NIM SDK: 监听消息接收
接收方 ->> NIM SDK: 登录
note over NIM SDK: 消息收发
发送方 ->> NIM SDK: 构建并发送文本消息
NIM SDK ->> 接收方: 投递消息
note over NIM SDK: 更新消息
发送方 ->> NIM SDK: 更新消息
调用updateMessage:forSession:completion:
方法更新消息的本地扩展字段 LocalExt
和自定义消息的附件对象 NIMCustomObject
。
该方法为异步写入,您无需在应用上层单独开线程,直接在当前线程调用即可。
-
API 原型
objc
@protocol NIMConversationManager <NSObject> - (void)updateMessage:(NIMMessage *)message forSession:(NIMSession *)session completion:(nullable NIMUpdateMessageBlock)completion; @end
参数说明:
参数 类型 说明 message
NIMMessage
需要被更新的消息,支持的更新属性见上文 session
NIMSession
消息所在的会话 completion
NIMUpdateMessageBlock
完成后的回调 -
示例代码
//消息打上拉黑拒收标记,方便 UI 显示 message.localExt = @{NTESMessageRefusedTag:@(true)}; [[NIMSDK sharedSDK].conversationManager updateMessage:message forSession:message.session completion:nil];
此文档是否对你有帮助?