请选择 进入手机版 | 继续访问电脑版
查看: 243|回复: 0

IM SDK怎么在本地插入一条消息

[复制链接]

21

主题

54

帖子

188

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
188
发表于 2018-3-21 11:41:47 | 显示全部楼层 |阅读模式
  • Windows (C)
    通过nim_msglog_insert_msglog_async往本地消息历史数据库里写入一条消息(通常是APP的本地自定义消息,并不会发给服务器。如果已存在这条消息,则更新)。其中参数need_update_session表示是否更新会话列表(一般最新一条消息会有更新的需求)。
  • Android
    通过NIMClient.getService(MsgService.class).saveMessageToLocal(IMMessage msg, boolean notify)或NIMClient.getService(MsgService.class).saveMessageToLocalEx(IMMessage msg, boolean notify, long time)来保存消息到本地数据库,但不发送到服务器端。用于APP保存本地提醒一类的消息。
    该接口将消息保存到数据库后,如果需要通知到UI,可将notify设置为true,此时会触发MsgServiceObserve.observeReceiveMessage(Observer, boolean)通知。
    saveMessageToLocalEx方法可以通过time参数设置保存消息的时间。
  • iOS
    通过NIMConversationManager协议的–saveMessage:forSession:completion:方法来写入本地消息,方法为异步写入,无须开发者在上层单独开线程,直接在当前线程调用即可。
    不允许插入已存在的消息。部分类型消息支持不发送直接写入本地,目前支持的类型为:1、文本类型(NIMMessageTypeText) 2、提醒类型(NIMMessageTypeTip) 3、自定义类型(NIMMessageTypeCustom)。
    当保存消息成功之后,会收到NIMChatManagerDelegate中的onRecvMessages:回调。
  • Web
    发送消息时可以指定参数isLocal为true,那么SDK并不会发送此条消息,而是直接调用回调表示发送成功,并更新对应的会话。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表