Options
All
  • Public
  • Public/Protected
  • All
Menu

消息记录相关的接口定义

Hierarchy

  • MessageLogInterface

Implemented by

Index

Methods

  • clearServerHistoryMsgsWithSync(options: { ext?: string; isDeleteRoam?: boolean; isSyncSelf?: boolean; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }): void
  • 删除某个会话的云端消息历史记录与漫游记录, 本地数据库中该会话的消息也会被删除,但是数据库中会话会保留。数据库中会话需要调用 {@link NIMGetInstanceOptions.deleteLocalSession} 删除

    若 isSyncSelf 为 true,则多端登录账户会触发 onClearServerHistoryMsgs

    关联函数

    示例场景

    Parameters

    • options: { ext?: string; isDeleteRoam?: boolean; isSyncSelf?: boolean; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }
      • Optional ext?: string

        扩展字段

      • Optional isDeleteRoam?: boolean

        是否删除漫游数据。默认 true

      • Optional isSyncSelf?: boolean

        是否多端同步。默认 false

      • scene: "p2p" | "team" | "superTeam"

        消息场景

      • to: string

        聊天对象。如果当前会话是单聊会话,则传入聊天对象的 IM 账号(accid);如果当前会话是群聊会话,则传入群 ID。

      • done?:function

    Returns void

  • deleteAllLocalMsgs(options: { done?: any }): void
  • 删除所有的本地消息,此方法会同时清空数据库中所有会话记录。

    注:如果运行环境不支持数据库,或者未开启数据库, 执行成功,但不会返回或者操作有效的数据。

    Parameters

    Returns void

  • deleteLocalMsg(options: { msg: NIMMessage; done?: any }): void
  • 描述

    删除某一条本地消息。

    • 如果运行环境不支持数据库,或者未开启数据库, 执行成功,但不会返回或者操作有效的数据。
    • 如果删除的是对应会话的最后一条消息, 那么对应会话的 lastMsg 属性会自动变为变为上一条消息, 同时触发 onupdatesessions 回调。
    • 如果消息不存在,会判定为执行成功

    Parameters

    Returns void

  • deleteLocalMsgs(options: { end?: number; sessionId: string; start?: number; updateSession?: boolean; done?: any }): void
  • 根据会话ID、起始时间等条件删除本地消息

    • 如果运行环境不支持数据库,或者未开启数据库, 执行成功,但不会返回或者操作有效的数据。
    • 结束时间应该大于开始时间
    • 如不传开始时间和结束时间,则删除某个会话的所有本地消息 相当于调用 deleteLocalMsgsBySession

    示例场景

    Parameters

    • options: { end?: number; sessionId: string; start?: number; updateSession?: boolean; done?: any }
      • Optional end?: number

        结束时间戳

      • sessionId: string

        session.id

      • Optional start?: number

        开始时间戳

      • Optional updateSession?: boolean

        是否同步更新会话,默认 true

      • done?:function

    Returns void

  • deleteLocalMsgsBySession(options: { delLastMsg?: boolean; isTag?: boolean; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }): void
  • 删除某个会话下所有的本地消息

    注:如果运行环境不支持数据库,或者未开启数据库, 执行成功,但不会返回或者操作有效的数据。

    Parameters

    • options: { delLastMsg?: boolean; isTag?: boolean; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }
      • Optional delLastMsg?: boolean

        是否同时会删除 session.lastMsg。默认 false

      • Optional isTag?: boolean

        是否为标记删除,默认 false

        注:为 true 是物理删除,无法能留存为这条消息插入的 localCustom 本地自定义的扩展字段。为 false 是逻辑删除。

      • scene: "p2p" | "team" | "superTeam"

        消息场景

      • to: string

        聊天对象。若是点对点消息请传入对方的账号,若是群消息则传入群id

      • done?:function

    Returns void

  • deleteLocalMsgsByTime(options: { end?: number; start?: number; deletedone?: any; done?: any }): Promise<void>
  • 删除指定时间的数据库消息

    注:如果运行环境不支持数据库,或者未开启数据库, 执行成功,但不会返回或者操作有效的数据。

    Parameters

    • options: { end?: number; start?: number; deletedone?: any; done?: any }
      • Optional end?: number
      • Optional start?: number

        开始时间戳,不填默认为 0

      • deletedone?:function
        • deletedone(data: { deletedMsgCount: number }): void
        • Parameters

          • data: { deletedMsgCount: number }
            • deletedMsgCount: number

          Returns void

      • done?:function
        • done(err: null | NIMCommonError | Error, data: null | { deletedMsgCount: number; sessionUpdateCount: number }): void
        • Parameters

          • err: null | NIMCommonError | Error
          • data: null | { deletedMsgCount: number; sessionUpdateCount: number }

          Returns void

    Returns Promise<void>

  • getHistoryMsgs(options: { asc?: boolean; beginTime?: number; endTime?: number; lastMsgId?: string; limit?: number; msgTypes?: ("custom" | "text" | "image" | "audio" | "video" | "geo" | "notification" | "file" | "tip" | "robot" | "g2")[]; reverse?: boolean; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }): void
  • 获取存储在云信服务端的历史消息。由参数beginTime和endTime来控制时间范围。

    • 当reverse为false时, 后续查询的endTime对应上次查询的最后一条消息的time字段
    • 当reverse为true时, 后续查询的beginTime对应上次查询的最后一条消息的time字段
    • 如果要搜索历史消息, 请参考获取 MessageLogInterface.msgFtsInServer

    使用场景

    用户进入会话首次渲染消息列表或者用户“下拉查看更多消息”时,需要调用该 API。

    注意

    • 该 API 获取云端的历史,但不会往本地数据库中插入。
    • 该 API 通过 options.done 回调返回查询到的历史消息列表。
    • 初始化阶段,若在同步完成之前调用此函数,可能会话的已读状态会不准确

    示例场景

    Parameters

    • options: { asc?: boolean; beginTime?: number; endTime?: number; lastMsgId?: string; limit?: number; msgTypes?: ("custom" | "text" | "image" | "audio" | "video" | "geo" | "notification" | "file" | "tip" | "robot" | "g2")[]; reverse?: boolean; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }
      • Optional asc?: boolean

        排序顺序。默认 false

        false 表示返回的消息按时间降序排序;

        true 表示按时间升序排序

      • Optional beginTime?: number

        开始时间的时间戳. 精确到 ms, 默认为 0

      • Optional endTime?: number

        结束时间的时间戳. 精确到 ms, 默认为 0

      • Optional lastMsgId?: string

        上次查询的最后一条消息的 idServer, 第一次不填

      • Optional limit?: number

        分页查询数量限制,默认 100 条记录

      • Optional msgTypes?: ("custom" | "text" | "image" | "audio" | "video" | "geo" | "notification" | "file" | "tip" | "robot" | "g2")[]

        指定消息类型。默认不填写就是查找全部消息类型

      • Optional reverse?: boolean

        查询顺序。默认 false 代表降序

        false 从 endTime 开始往前查找 limit 条历史消息

        true 从 beginTime 开始往后查找 limit 条历史消息

      • scene: "p2p" | "team" | "superTeam"

        消息场景

      • to: string

        聊天对象。若是点对点消息请传入对方的账号,若是群消息则传入群id

      • done?:function

    Returns void

  • getLocalMsgs(options: { desc?: boolean; end?: number; keyword?: string; limit?: number; sessionId?: string; start?: number; subTypes?: number[]; types?: ("custom" | "text" | "image" | "audio" | "video" | "geo" | "notification" | "file" | "tip" | "robot" | "g2")[]; done?: any }): void
  • 描述

    从本地数据库拉取历史消息。

    使用场景

    用户进入会话首次渲染消息列表或者用户“下拉查看更多消息”时,需要调用该 API。

    注意

    如果运行环境不支持数据库,或者未开启数据库, 调用能够执行成功,但不会返回或者操作有效的数据。

    Parameters

    • options: { desc?: boolean; end?: number; keyword?: string; limit?: number; sessionId?: string; start?: number; subTypes?: number[]; types?: ("custom" | "text" | "image" | "audio" | "video" | "geo" | "notification" | "file" | "tip" | "robot" | "g2")[]; done?: any }
      • Optional desc?: boolean

        true 表示从 end 开始查, false 表示从 begin 开始查

      • Optional end?: number

        结束时间戳

      • Optional keyword?: string

        [indexedDB专用]如果提供参数, 那么查询匹配该关键词的消息

        注:这个参数提供的查询是正向索引模式的,数据量大时查询将会相当慢。若是需要支持全文检索(倒排索引结构)的,参见 fts 相关接口

      • Optional limit?: number

        分页限制

      • Optional sessionId?: string

        如果提供该参数, 那么查询该会话的消息

      • Optional start?: number

        开始时间戳

      • Optional subTypes?: number[]

        [indexedDB专用]如果提供该参数, 那么查询这几种子类型的消息

      • Optional types?: ("custom" | "text" | "image" | "audio" | "video" | "geo" | "notification" | "file" | "tip" | "robot" | "g2")[]

        [indexedDB专用]如果提供该参数, 那么查询该类型的消息

      • done?:function

    Returns void

  • getLocalMsgsByIdClients(options: { idClients: string[]; done?: any }): void
  • 描述

    根据客户端为消息生成的 ID 的列表(idClients)获取本地的历史消息列表。

    注意

    如果运行环境不支持数据库,或者未开启数据库, 调用能执行成功,但不会返回或者操作有效的数据。

    Parameters

    Returns void

  • msgFtsInServer(options: { fromTime?: number; keyword: string; msgLimit?: number; msgSubTypeList?: string[]; msgTypeList?: string[]; order?: string; p2pList?: string[]; senderList?: string[]; sessionLimit?: number; teamList?: string[]; toTime?: number; done?: any }): void
  • 描述

    云端全文检索消息(full-text search)。返回的消息会按会话(session)分类返回,不按时间分页。

    使用场景

    用户登录后针对所有会话按照关键字等筛选条件,搜索某段时间内的存储在云信服务端的历史消息。

    前提条件

    已在云信控制台开通“全文云端检索消息”功能。

    配置路径:选择应用进入应用详情界面,并选择 IM 免费版/专业版 > 功能权限开通 > 拓展配置 > 全局 > 全文云端消息检索

    Parameters

    • options: { fromTime?: number; keyword: string; msgLimit?: number; msgSubTypeList?: string[]; msgTypeList?: string[]; order?: string; p2pList?: string[]; senderList?: string[]; sessionLimit?: number; teamList?: string[]; toTime?: number; done?: any }
      • Optional fromTime?: number

        检索目标的开始时间,默认 0 代表不限制

      • keyword: string

        检索关键词

      • Optional msgLimit?: number

        单个会话返回的消息数量限制。默认 5。 举例传 1,每个会话返回 1 条匹配的消息。

      • Optional msgSubTypeList?: string[]

        消息子类型,此类型开发者在发送消息时可自定义,且格式为大于0的整数。示例:[1, 2]

      • Optional msgTypeList?: string[]

        消息类型 示例:['text', 'image', 'audio', 'video', 'geo', 'notification', 'file', 'tip', 'custom']

      • Optional order?: string

        查询的消息排序规则,默认 DESC 按消息时间降序。可选 ASC 升序。

      • Optional p2pList?: string[]

        搜索条件 P2P 会话列表,会话(p2p-accid1)的 account 示例:['accid1', 'accid2', 'accid3']

      • Optional senderList?: string[]

        消息发送者列表,account 列表 示例:['accid1', 'accid2', 'accid3']

      • Optional sessionLimit?: number

        会话数量限制。默认 10. 例子:如果传入 5,检索返回 5 个会话的消息

      • Optional teamList?: string[]

        搜索条件 群列表。从这些 team(team-146694936) 里搜寻消息,示例:['146694936', '13897']

      • Optional toTime?: number

        检索目标的结束时间,默认 当前时间

      • done?:function

    Returns void

  • msgFtsInServerByTiming(options: { fromTime?: number; keyword: string; msgLimit?: number; msgSubTypeList?: string[]; msgTypeList?: string[]; order?: string; p2pList?: string[]; senderList?: string[]; teamList?: string[]; toTime?: number; done?: any }): void
  • 描述

    云端全文检索消息(按时间分页搜索)。返回的消息结果按时间排序。

    使用场景

    用户登录后针对所有会话按照关键字等筛选条件,搜索某段时间内的存储在云信服务端的历史消息。

    前提条件

    已在云信控制台开通“全文云端检索消息”功能。

    配置路径:选择应用进入应用详情界面,并选择 IM 免费版/专业版 > 功能权限开通 > 拓展配置 > 全局 > 全文云端消息检索

    Parameters

    • options: { fromTime?: number; keyword: string; msgLimit?: number; msgSubTypeList?: string[]; msgTypeList?: string[]; order?: string; p2pList?: string[]; senderList?: string[]; teamList?: string[]; toTime?: number; done?: any }
      • Optional fromTime?: number

        检索目标的开始时间,默认 0 代表不限制

      • keyword: string

        检索关键词

      • Optional msgLimit?: number

        单个会话返回的消息数量限制。默认 5。 举例传 1,每个会话返回 1 条匹配的消息。

      • Optional msgSubTypeList?: string[]

        消息子类型,此类型开发者在发送消息时可自定义,且格式为大于0的整数。示例:[1, 2]

      • Optional msgTypeList?: string[]

        消息类型 示例:['text', 'image', 'audio', 'video', 'geo', 'notification', 'file', 'tip', 'custom']

      • Optional order?: string

        查询的消息排序规则,默认 DESC 按消息时间降序。可选 ASC 升序。

      • Optional p2pList?: string[]

        搜索条件 P2P 会话列表,会话(p2p-accid1)的 account 示例:['accid1', 'accid2', 'accid3']

      • Optional senderList?: string[]

        消息发送者列表,account 列表 示例:['accid1', 'accid2', 'accid3']

      • Optional teamList?: string[]

        搜索条件 群列表。从这些 team(team-146694936) 里搜寻消息,示例:['146694936', '13897']

      • Optional toTime?: number

        检索目标的结束时间,默认 当前时间

      • done?:function

    Returns void

  • saveMsgsToLocal(options: { msgs: NIMMessage[]; done?: any }): void
  • 将消息存储至本地数据库

    注:如果运行环境不支持数据库,或者未开启数据库, 执行成功,但不会返回或者操作有效的数据。

    Parameters

    Returns void

  • subMessages(options: { msg: NIMMessage; done?: any }): void
  • 查询某条消息所有的回复消息。传入的参数为待查询的根消息。返回值为消息列表. 稳定版自 8.9.123+ 可用

    注: 该接口需要开启 db 才可以使用

    Parameters

    Returns void

  • subMessagesCount(options: { msg: NIMMessage; done?: any }): void
  • 查询某条消息所有回复消息数量. 稳定版自 8.9.123+ 可用

    注: 该接口需要开启 db 才可以使用

    Parameters

    Returns void

  • updateLocalMsg(options: { idClient: string; localCustom: string; done?: any }): void
  • 描述

    更新本地消息。仅允许更新 localCustom 本地自定义扩展字段。

    注意

    如果运行环境不支持数据库,或者未开启数据库, 调用会执行成功,但不会返回或者操作有效的数据。

    Parameters

    • options: { idClient: string; localCustom: string; done?: any }

    Returns void