Options
All
  • Public
  • Public/Protected
  • All
Menu

Class NIM

Hierarchy

Implements

Index

Constructors

Methods

Constructors

Methods

  • acceptSuperTeamInvite(_options: { from: string; idServer: string; teamId: string; done?: any }): void
  • 群主和管理员邀请成员加入群(addSuperTeamMembers), 被邀请的人收到类型为superTeamInvite的系统通知

    • 若接受入群邀请, 该群所有成员收到类型为 acceptSuperTeamInvite 的群通知消息,通知消息具体内容见下文
    • 若拒绝入群邀请, 邀请你的人会收到类型为 rejectSuperTeamInvite 的系统通知, 此系统通知的 from 字段的值为拒绝入群邀请的人的帐号, to 字段的值为对应的 群ID

    用户接受入群邀请后:

    1. 所有群成员收到群通知消息: onmsg:
      • msg.type: 'notification'
      • msg.from: 邀请人账号
      • msg.to: 群id
      • msg.attach.type: 'acceptSuperTeamInvite'
      • msg.attach.team: 群信息
      • msg.attach.members: 接收入群邀请的群成员列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddSuperTeamMembers
    4. 函数调用者触发 onupdatesysmsg

    关联函数

    Parameters

    • _options: { from: string; idServer: string; teamId: string; done?: any }
      • from: string

        申请者的 accountId

      • idServer: string

        管理员邀请此用户进群的系统通知的 idServer

      • teamId: string
      • done?:function

    Returns void

  • acceptTeamInvite(_options: { from: string; idServer: string; teamId: string; done?: any }): void
  • 同意入群邀请 TeamInterface.addTeamMembers

    群主和管理员邀请成员加入群(addTeamMembers), 被邀请的人收到类型为teamInvite的系统通知

    此系统通知的 from 字段的值为邀请方的帐号, to 字段的值为对应的 群ID, 此类系统通知的 attach 有一个字段 team 的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请

    • 若接受入群邀请, 该群所有成员收到类型为 acceptTeamInvite 的群通知消息, 通知消息具体内容见下文
    • 若拒绝入群邀请, 邀请你的人会收到类型为 rejectTeamInvite 的系统通知, 此系统通知的 from 字段的值为拒绝入群邀请的人的帐号, to 字段的值为对应的 群ID

    用户接受入群邀请后:

    1. 所有群成员, 收到群通知消息 onmsg:
      • msg.type: 'notification'
      • msg.from: 邀请人账号
      • msg.to: 群id
      • msg.attach.type: 'acceptTeamInvite'
      • msg.attach.team: 群信息
      • msg.attach.members: 接收入群邀请的群成员列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddTeamMembers
    4. 函数调用者触发 onupdatesysmsg

    关联函数

    Parameters

    • _options: { from: string; idServer: string; teamId: string; done?: any }
      • from: string

        申请者的 accountId

      • idServer: string

        管理员邀请此用户进群的系统通知的 idServer

      • teamId: string
      • done?:function

    Returns void

  • addCollect(_options: { custom?: string; data: string; type: number; uniqueId?: string; done?: any }): void
  • 添加收藏,收藏内容由用户根据业务场景自行决定。收藏内容仅当前用户可见。

    Parameters

    • _options: { custom?: string; data: string; type: number; uniqueId?: string; done?: any }
      • Optional custom?: string

        收藏的扩展字段, 最大 1024 字符数

      • data: string

        收藏的具体数据内容, 最大 20480 字符数

      • type: number

        类型,开发者可自定义映射关系,只能是整数

      • Optional uniqueId?: string

        去重唯一 ID。

        注:当传入 uniqueId 时,会校验此 uniqueId 之前是否存在对应的收藏记录,若不存在则会新增收藏,已存在则会更新这个收藏。

      • done?:function

    Returns void

  • addFriend(_options: { account: string; ps?: string; done?: any }): void
  • addMsgPin(_options: { msg: NIMMsgPinInfo; pinCustom?: string; done?: any }): void
  • addQuickComment(_options: { apnsText?: string; body: number; custom?: string; msg: NIMMessage; needBadge?: boolean; needPush?: boolean; pushPayload?: NIMStrAnyObj; pushTitle?: string; done?: any }): void
  • 添加快捷评论

    • 评论只有几个简单的字段,可删除,不计入未读数
    • 发送后,消息发送方和评论发送方的多端同步设备会触发 NIMGetInstanceOptions.onQuickComment 回调函数

    Parameters

    • _options: { apnsText?: string; body: number; custom?: string; msg: NIMMessage; needBadge?: boolean; needPush?: boolean; pushPayload?: NIMStrAnyObj; pushTitle?: string; done?: any }
      • Optional apnsText?: string

        自定义推送文案

      • body: number

        评论的内容。

        注:输入整数,开发者需要自定义映射规则。如 1 为点赞的表情、2 对应鼓掌的表情等

      • Optional custom?: string

        扩展内容

      • msg: NIMMessage

        被回复的消息

      • Optional needBadge?: boolean

        是否需要消息计数(APP 的角标计数),默认 false

      • Optional needPush?: boolean

        是否需要推送,默认 false。

      • Optional pushPayload?: NIMStrAnyObj

        第三方自定义的推送属性,限制 json

      • Optional pushTitle?: string

        推送的标题

      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { comment: { body: number; custom?: string; from: string; time: number }; msg: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string } }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { comment: { body: number; custom?: string; from: string; time: number }; msg: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string } }
            • comment: { body: number; custom?: string; from: string; time: number }

              评论内容

              • body: number

                快捷评论内容

              • Optional custom?: string

                扩展内容

              • from: string

                该评论的发送方的 account ID

              • time: number

                评论的发送时间。

            • msg: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string }

              消息, 摘取 NIMMessage 结构里的几个字段,且 idServer 在这里必须存在。

              • from: string

                消息发送方, 帐号

              • idServer: string

                服务器用于区分消息用的ID, 用于获取历史消息和获取包含关键词的历史消息。

                注:此字段可能没有, 比如说消息被反垃圾过滤了。

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

                消息场景:

                • p2p:单聊场景
                • team:群聊场景
                • superteam:超大群场景
              • time: number

                时间戳

              • to: string

                消息接收方, 帐号或群id

          Returns void

    Returns void

  • addStickTopSession(_options: { id: string; topCustom?: string; done: any }): void
  • addSuperTeamManagers(_options: { accounts: string[]; teamId: string; done?: any }): void
  • 添加超级群管理员

    添加管理员后:

    1. 所有群成员收到群通知消息 onmsg:
      • msg.type: 'notification'
      • msg.from: 添加管理员的操作者
      • msg.to: 群id
      • msg.attach.type: 'addSuperTeamManagers'
      • msg.attach.accounts: 被加为管理员的账号列表
      • msg.attach.members: 被加为管理员的群成员详细信息列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onUpdateSuperTeamManagers

    Parameters

    Returns void

  • addSuperTeamMembers(_options: { accounts: string[]; custom?: string; ps?: string; teamId: string; done?: any }): void
  • 添加超级群成员

    • 如果 inviteMode: 'noVerify':
    1. 被邀请人直接进群,所有群成员触发 onmsg:
      • msg.type: 'notification'
      • msg.from: 邀请人账号
      • msg.to: 群id
      • msg.attach.type: 'addSuperTeamMembers'
      • msg.attach.team: 群详细信息
      • msg.attach.members: 被邀请入群成员详细信息列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddSuperTeamMembers
    • 如果 inviteMode: 'needVerify'
    1. 被邀请者触发 onsysmsg,其 type 为 'superTeamInvite'。被邀请者通过 acceptSuperTeamInvite 或者 rejectSuperTeamInvite回应入群邀请

    Parameters

    • _options: { accounts: string[]; custom?: string; ps?: string; teamId: string; done?: any }
      • accounts: string[]

        要加入的用户账号列表

      • Optional custom?: string

        附加字段,推荐使用 JSON 序列化字符串

      • Optional ps?: string

        附言,长度不得大于 5000 字符,开发者可以使用 JSON 序列化字符串填充

      • teamId: string
      • done?:function

    Returns void

  • addSuperTeamMembersFollow(options: { accountIds: string[]; teamId: string; done: any }): void
  • addTeamManagers(_options: { accounts: string[]; teamId: string; done?: any }): void
  • 添加群管理员

    添加群管理员后:

    1. 所有群成员触发 onmsg:
      • msg.type: 'notification'
      • msg.from: 添加管理员的操作者
      • msg.to: 群id
      • msg.attach.type: 'addTeamManagers'
      • msg.attach.accounts: 被加为管理员的帐号列表
      • msg.attach.members: 被加为管理员的群成员详细信息列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onUpdateTeamManagers

    Parameters

    Returns void

  • addTeamMembers(_options: { accounts: string[]; custom?: string; ps?: string; teamId: string; done?: any }): void
  • 添加群成员

    普通群(已废弃,推荐使用高级群):

    1. 拉人入群后, 其他群成员会收到通知并触发 onAddTeamMembers

    2. 被邀请的群成员不会收到回调,直到群内成员发送消息,触发 onupdatesessions 回调,才能够感知到自己已经入群。

    高级群:

    • 如果 inviteMode: 'noVerify':
    1. 被邀请人直接入群,所有群成员触发 onmsg:
      • msg.type: 'notification'
      • msg.from: 邀请者账号
      • msg.to: 群id
      • msg.attach.type: 'addTeamMembers'
      • msg.attach.accounts: 被邀请入群成员账号列表
      • msg.attach.members: 被邀请入群成员详细信息列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddTeamMembers
    • 如果 inviteMode: 'needVerify'
    1. 被邀请者触发 onsysmsg,其 type 为 'teamInvite'。被邀请者通过 acceptTeamInvite 或者 rejectTeamInvite回应入群邀请

    Parameters

    • _options: { accounts: string[]; custom?: string; ps?: string; teamId: string; done?: any }
      • accounts: string[]

        要加入的用户账号列表

      • Optional custom?: string

        附加字段,推荐使用 JSON 序列化字符串

      • Optional ps?: string

        附言,长度不得大于 5000 字符,开发者可以使用 JSON 序列化字符串填充

      • teamId: string
      • done?:function

    Returns void

  • addTeamMembersFollow(options: { accountIds: string[]; teamId: string; done: any }): void
  • addToBlacklist(_options: { account: string; done?: any }): void
  • 加入黑名单。调用后,初始化同步阶段收到 onblacklist 回调,多端同步阶段收到 onsyncmarkinblacklist 回调

    示例场景

    Parameters

    • _options: { account: string; done?: any }
      • account: string
      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }
            • account: string

              被操作者账号 ID

            • isAdd: boolean

              是否加入名单(黑名单或者静音列表)

              true 代表某人被加入名单,false 代表某人被移出名单

            • record: { account: string; updateTime: number }

              该操作记录的详情

              • account: string

                被操作者账号 ID

              • updateTime: number

                更新时间戳

          Returns void

    Returns void

  • addToMutelist(_options: { account: string; done?: any }): void
  • 加入静音列表。调用后,初始化同步阶段收到 onmutelist 回调,多端同步阶段收到 onsyncmarkinmutelist 回调

    • 通过设置静音列表来控制单聊免打扰
    • 被静音用户发送的消息,不会通过推送通知给用户
    • 用户 UI 层,可以通过静音列表来决定是否渲染会话的未读数

    示例场景

    Parameters

    • _options: { account: string; done?: any }
      • account: string
      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }
            • account: string

              被操作者账号 ID

            • isAdd: boolean

              是否加入名单(黑名单或者静音列表)

              true 代表某人被加入名单,false 代表某人被移出名单

            • record: { account: string; updateTime: number }

              该操作记录的详情

              • account: string

                被操作者账号 ID

              • updateTime: number

                更新时间戳

          Returns void

    Returns void

  • appBackground(options: { badge?: number; isBackground: boolean; done?: any }): void
  • app 切后台通知.

    注: 仅 RN 环境拥有此接口

    注: 仅 IOS 可能支持切换后台能去收推送

    Parameters

    Returns void

  • applyFriend(_options: { account: string; ps?: string; done?: any }): void
  • applySuperTeam(_options: { ps?: string; teamId: string; done?: any }): void
  • 用户主动申请加入超级群。根据 joinMode 不同,SDK 有不同的行为

    • 如果 joinMode: 'noVerify':
    1. 所有群成员触发 onmsg:
      • msg.type: 'notification'
      • msg.from: 申请人账号
      • msg.to: 群id
      • msg.attach.type: 'passSuperTeamApply'
      • msg.attach.account: 申请人账号
      • msg.attach.members: 被通过申请的群成员列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddSuperTeamMembers
    • 如果 joinMode: 'needVerify'
    1. 管理员触发 onsysmsg,其 type 为 'applySuperTeam'。管理员通过 passSuperTeamApply 或者 rejectSuperTeamApply回应入群申请
    • 如果 joinMode: 'rejectAll'
    1. 收到申请入群失败的error信息

    Parameters

    Returns void

  • applyTeam(_options: { ps?: string; teamId: string; done?: any }): void
  • 用户主动申请加入群。根据 joinMode 不同,SDK 有不同的行为

    • 如果 joinMode: 'noVerify':
    1. 所有群成员触发 onmsg:
      • msg.type: 'notification'
      • msg.from: 申请人账号
      • msg.to: 群id
      • msg.attach.type: 'passTeamApply'
      • msg.attach.account: 申请人账号
      • msg.attach.members: 被通过申请的群成员列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddTeamMembers
    • 如果 joinMode: 'needVerify'
    1. 管理员触发 onsysmsg,其 type 为 'applyTeam'。管理员通过 passTeamApply 或者 rejectTeamApply回应入群申请
    • 如果 joinMode: 'rejectAll'
    1. 收到申请入群失败的error信息

    Parameters

    Returns void

  • audioToMp3(_options: { url: string }): string
  • audioToText(_options: { url: string; done: any }): void
  • 音频转文字。注意,该功能仅在 NIM 中可以使用。Chatroom尚未实现此功能。

    • 仅支持通过previewFile或者sendFile拿到的音频 url, 或者收到的音频消息的 url

    Parameters

    Returns void

  • blurImage(_options: { radius: number; sigma: number; url: string; done?: any }): void
  • 高斯模糊图片

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url

    Parameters

    • _options: { radius: number; sigma: number; url: string; done?: any }
      • radius: number

        高斯模糊半径

      • sigma: number

        高斯模糊标准差,不能小于 0

      • url: string

        NOS 图片源链接

      • done?:function

    Returns void

  • clearServerHistoryMsgsWithSync(_options: { ext?: string; isDeleteRoam?: boolean; isSyncSelf?: boolean; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }): void
  • connect(): void
  • 使用 disconnect 方法登出IM后,可以调用 connect 重新登录。调用 getInstance 后会自动建立长连接,无需调用 connect

    关联函数

    示例

    nim.disconnect({
    done: function() {
    nim.connect()
    }
    })

    Returns void

  • createTeam(_options: { accounts?: string[]; announcement?: string; antiSpamBusinessId?: string; avatar?: string; beInviteMode?: "noVerify" | "needVerify"; custom?: string; intro?: string; inviteMode?: "manager" | "all"; joinMode?: "noVerify" | "needVerify" | "rejectAll"; name: string; ps?: string; type: "normal" | "advanced"; updateCustomMode?: "manager" | "all"; updateTeamMode?: "manager" | "all"; done?: any }): void
  • 创建高级群。普通群已废弃,请使用高级群。

    • 若传入的属性为 undefined,或者未传入,则日后拉取 team 时,对应属性也是 undefined。

    • 下面为高级群申请入群(joinMode)的鉴权方式。默认为 needVerify

    1. needVerify: 需要管理员同意
    2. noVerify: 无需管理员同意
    3. rejectAll: 不允许入群申请
    • 下面为高级群中邀请入群(beInviteMode)的鉴权方式。默认为 needVerify
    1. needVerify: 需要被邀请人同意
    2. noVerify: 无需被邀请人同意
    • 下面为高级群邀请权限(inviteMode)的设置。默认为 manager
    1. manager: 仅管理员可以邀请入群
    2. all: 所有人均可邀请成员入群
    • 下面为群信息修改权限(updateTeamMode)设置。默认为 manager
    1. manager: 仅管理员可以修改权限
    2. all: 所有人均可以修改权限
    • 下面为群信息自定义字段修改权限(updateCustomMode)设置。默认为 manager
    1. manager: 仅管理员可以修改权限
    2. all: 所有人均可以修改权限

    函数调用后:

    • 创建者触发 onCreateTeam
    • 如果 beInviteMode: noVerify:
    1. 被邀请者收到 onmsgonupdatesessions、以及 NIMGetInstanceOptions.onAddTeamMembers
    2. 创建者收到 onupdatesessions、以及 NIMGetInstanceOptions.onAddTeamMembers
    • 如果 beInviteMode: needVerify:
    1. 被邀请者收到 NIMGetInstanceOptions.onsysmsg,类型为 teamInvite

    Parameters

    • _options: { accounts?: string[]; announcement?: string; antiSpamBusinessId?: string; avatar?: string; beInviteMode?: "noVerify" | "needVerify"; custom?: string; intro?: string; inviteMode?: "manager" | "all"; joinMode?: "noVerify" | "needVerify" | "rejectAll"; name: string; ps?: string; type: "normal" | "advanced"; updateCustomMode?: "manager" | "all"; updateTeamMode?: "manager" | "all"; done?: any }
      • Optional accounts?: string[]

        要拉进群的成员的帐号列表

      • Optional announcement?: string

        群公告

      • Optional antiSpamBusinessId?: string

        对某些资料内容进行反垃圾处理的业务 ID, 在云信控制台里配置.

      • Optional avatar?: string

        群头像

      • Optional beInviteMode?: "noVerify" | "needVerify"

        群被邀请模式

      • Optional custom?: string

        扩展字段

      • Optional intro?: string

        群简介

      • Optional inviteMode?: "manager" | "all"

        群邀请模式

      • Optional joinMode?: "noVerify" | "needVerify" | "rejectAll"

        群加入方式

      • name: string

        群名

      • Optional ps?: string

        拉人的附言

      • type: "normal" | "advanced"

        群类型

      • Optional updateCustomMode?: "manager" | "all"

        群信息自定义字段修改权限

      • Optional updateTeamMode?: "manager" | "all"

        群信息修改权限

      • done?:function
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { accounts?: string[]; antispamTag?: { antiSpamBusinessId?: string }; owner: NIMTeamMember; ps?: string; team: NIMTeam }
            • Optional accounts?: string[]

              要拉进群的成员的帐号列表

            • Optional antispamTag?: { antiSpamBusinessId?: string }

              反垃圾标签

              • Optional antiSpamBusinessId?: string
            • owner: NIMTeamMember

              创建者的信息

            • Optional ps?: string

              拉人的附言

            • team: NIMTeam

          Returns void

    Returns void

  • cropImage(_options: { height: number; url: string; width: number; x: number; y: number; done?: any }): void
  • 剪裁图片

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • 从坐标 (x, y) 处截取尺寸为 width*height 的图片, (0, 0) 代表左上角
    • width/height 不能小于0, 如果 width/height 大于图片的原始宽度/高度, 那么将被替换为图片的原始宽度/高度

    Parameters

    • _options: { height: number; url: string; width: number; x: number; y: number; done?: any }
      • height: number

        高度

      • url: string

        NOS 图片源链接

      • width: number

        宽度

      • x: number

        x 坐标, 必须需为整数

      • y: number

        y 坐标, 必须需为整数

      • done?:function

    Returns void

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

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

    Parameters

    Returns void

  • deleteAllLocalSysMsgs(_options: { done?: any }): void
  • deleteCollects(_options: { collectList: NIMCollect[]; done?: any }): void
  • deleteFriend(_options: { account: string; delAlias?: boolean; done?: any }): 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>

  • deleteLocalSession(_options: { id: string; isDeleteRoaming?: boolean; isLogic?: boolean; done?: any }): void
  • deleteLocalSysMsg(_options: { idServer: string | string[]; done?: any }): void
  • deleteLocalTeam(_options: { teamId: string | string[]; done?: any }): void
  • deprecated

    已废弃

    Parameters

    • _options: { teamId: string | string[]; done?: any }
      • teamId: string | string[]

        建议传入 teamId 数组。

        注: 为了兼容老接口, 允许传入 string, 但是建议传入数组

      • done?:function

    Returns void

  • deleteMsg(_options: { apnsText?: string; attach?: string; env?: string; msg: NIMMessage; ps?: string; pushPayload?: string; done?: any }): void
  • deprecated

    该方法已废弃,请使用 recallMsg

    Parameters

    • _options: { apnsText?: string; attach?: string; env?: string; msg: NIMMessage; ps?: string; pushPayload?: string; done?: any }
      • Optional apnsText?: string

        自定义推送文案

      • Optional attach?: string

        附加信息,推荐使用 JSON 格式化字符串

      • Optional env?: string

        抄送环境

      • msg: NIMMessage

        待撤回的消息

      • Optional ps?: string

        附言

      • Optional pushPayload?: string

        第三方自定义的推送属性,限制使用 JSON 格式化的字符串

      • done?:function

    Returns void

  • deleteMsgSelf(_options: { custom?: string; msg: NIMMessage; done?: any }): void
  • deleteMsgSelfBatch(_options: { custom?: string; msgs: NIMMessage[]; done?: any }): void
  • deleteNosAccessToken(_options: { token: string; done: any }): void
  • deprecated

    获取短链接的鉴权 token。v8.10.0 后废弃,使用新接口 getFileAuthToken 后不需要主动删除 token

    Parameters

    • _options: { token: string; done: any }
      • token: string

        文件 url

      • done:function
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { resUrl: string; token: string }
            • resUrl: string

              完整可访问的链接

            • token: string

          Returns void

    Returns void

  • deleteQuickComment(_options: { apnsText?: string; body: number; custom?: string; msg: NIMMessage; needBadge?: boolean; needPush?: boolean; pushPayload?: NIMStrAnyObj; pushTitle?: string; done?: any }): void
  • 删除一个快捷评论

    Parameters

    • _options: { apnsText?: string; body: number; custom?: string; msg: NIMMessage; needBadge?: boolean; needPush?: boolean; pushPayload?: NIMStrAnyObj; pushTitle?: string; done?: any }
      • Optional apnsText?: string

        自定义推送文案

      • body: number

        评论的内容。

        注:输入整数,开发者需要自定义映射规则。如 1 为点赞的表情、2 对应鼓掌的表情等

      • Optional custom?: string

        扩展内容

      • msg: NIMMessage

        被回复的消息

      • Optional needBadge?: boolean

        是否需要消息计数(APP 的角标计数),默认 false

      • Optional needPush?: boolean

        是否需要推送,默认 false。

      • Optional pushPayload?: NIMStrAnyObj

        第三方自定义的推送属性,限制 json

      • Optional pushTitle?: string

        推送的标题

      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { comment: { body: number; custom?: string; from: string; time: number }; msg: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string } }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { comment: { body: number; custom?: string; from: string; time: number }; msg: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string } }
            • comment: { body: number; custom?: string; from: string; time: number }

              评论内容

              • body: number

                快捷评论内容

              • Optional custom?: string

                扩展内容

              • from: string

                该评论的发送方的 account ID

              • time: number

                评论的发送时间。

            • msg: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string }

              消息, 摘取 NIMMessage 结构里的几个字段,且 idServer 在这里必须存在。

              • from: string

                消息发送方, 帐号

              • idServer: string

                服务器用于区分消息用的ID, 用于获取历史消息和获取包含关键词的历史消息。

                注:此字段可能没有, 比如说消息被反垃圾过滤了。

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

                消息场景:

                • p2p:单聊场景
                • team:群聊场景
                • superteam:超大群场景
              • time: number

                时间戳

              • to: string

                消息接收方, 帐号或群id

          Returns void

    Returns void

  • deleteServerSessions(_options: { sessions: { scene: "p2p" | "team" | "superTeam"; to: string }[]; done: any }): void
  • deleteSession(_options: { scene: "p2p" | "team" | "superTeam"; to: string; done?: any }): void
  • deleteSessions(_options: { sessions: NIMSession[]; done?: any }): void
  • deleteSessionsWithMoreRoaming(_options: { id: string; done?: any }): void
  • deleteStickTopSession(_options: { id: string; done: any }): void
  • destroy(_options: { done?: any }): void
  • 断开IM连接,并销毁IM实例。销毁实例后,无法调用 connect 重新连接。

    注意,在9.9.0以及之前版本,调用 destroy 后,会直接触发 ondisconnect 回调函数,但此时长连接并未真正销毁。只有在 done 回调触发时才能保证长连接真正销毁。为了避免重连时多端互踢,用户应该在 destroy 的 done 回调中设置重连等操作

    关联函数

    Parameters

    Returns void

  • disconnect(_options: { done?: any }): void
  • 断开IM连接,但不销毁IM实例。调用 connect 重新登录后,会基于实例状态增量同步数据

    注意,在9.9.0以及之前版本,调用 destroy 后,会直接触发 ondisconnect 回调函数,但此时长连接并未真正销毁。只有在 done 回调触发时才能保证长连接真正销毁。为了避免重连时多端互踢,用户应该在 destroy 的 done 回调中设置重连等操作

    关联函数

    注意事项

    Parameters

    Returns void

  • dismissTeam(_options: { teamId: string; done?: any }): void
  • Return an array listing the events for which the emitter has registered listeners.

    Returns keyof NIMSignalingEventInterface[]

  • filterClientAntispam(_options: { content: string }): { code: number; content: string; errmsg: string; result: string; type: number }
  • 检查客户端反垃圾。客户端反垃圾具体用法请参考 反垃圾(内容审核)

    注: 调用此接口前,需要调用过一次 getClientAntispamLexicon 来获取反垃圾词库. 否则会出现 404 没有反垃圾词库

    示例场景

    Parameters

    • _options: { content: string }
      • content: string

        待检查文本.

    Returns { code: number; content: string; errmsg: string; result: string; type: number }

    • code: number

      请求的处理状态

    • content: string

      待检查文本.

    • errmsg: string

      建议处理提示

    • result: string

      建议放行的文本

    • type: number

      建议处理类型

      0 放行. 1 对特殊字符过了过滤后放行 2 建议拒绝发送 3 命中客户端反垃圾,交给服务器处理,在发送消息时带上 clientAntiSpam 字段来表示命中.

  • forwardMsg(_options: { msg: NIMMessage; scene: "p2p" | "team" | "superTeam"; to: string; done?: any }): NIMMessage
  • getAllSuperTeamMembers(_options: { teamId: string; done?: any }): void
  • getChatroomAddress(_options: { chatroomId: string; done: any }): void
  • 获取聊天室的连接地址,返回可用的连接地址列表

    depreacated

    推荐开发者使用 服务器接口 查询聊天室地址

    Parameters

    • _options: { chatroomId: string; done: any }
      • chatroomId: string

        聊天室 id

      • done:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { address: string[]; chatroomId: string; ipType: number; isWeixinApp: boolean; type: number }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { address: string[]; chatroomId: string; ipType: number; isWeixinApp: boolean; type: number }
            • address: string[]

              地址列表

            • chatroomId: string

              聊天室 id

            • ipType: number

              0 代表想要获取 ipv4 的连接,1 代表 ipv6,2 代表不限制。

              默认 0

            • isWeixinApp: boolean

              是否是提供给微信环境下用的链接

            • type: number

          Returns void

    Returns void

  • getClientAntispamLexicon(_options: { done: any }): void
  • 获取反垃圾词库。开发者可以通过此接口获取反垃圾的词库。调用后,词库加载后会自动保存在内存中

    详细用法请参考: 反垃圾(内容审核)

    示例场景

    Parameters

    • _options: { done: any }
      • done:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { clientAntispam: { md5: string; nosurl: string; thesaurus: string; version: string } }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { clientAntispam: { md5: string; nosurl: string; thesaurus: string; version: string } }
            • clientAntispam: { md5: string; nosurl: string; thesaurus: string; version: string }
              • md5: string

                词库文件的md5

              • nosurl: string

                词库文件的下载地址

              • thesaurus: string

                词库内容, 可以被解析为 JSON 对象

              • version: string

                词库版本

          Returns void

    Returns void

  • getCollects(_options: { beginTime?: number; endTime?: number; lastId?: string; limit?: number; reverse?: boolean; type?: number; done?: any }): void
  • 查询收藏列表

    Parameters

    • _options: { beginTime?: number; endTime?: number; lastId?: string; limit?: number; reverse?: boolean; type?: number; done?: any }
      • Optional beginTime?: number

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

      • Optional endTime?: number

        结束时间的时间戳, 精确到ms, 默认为服务器最新时间

      • Optional lastId?: string

        上次查询的最后一条收藏的id

        注:从第二页开始建议填写,便于服务器区分相同时间戳的两条记录。

      • Optional limit?: number

        本次查询的消息数量限制, 默认100条

      • Optional reverse?: boolean

        排列顺序。默认为 false

        为 true 则代表按时间戳升序查询,从 beginTime 开始查询到 endTime 之间的 limit 条记录

        为 false 则代表按时间戳降序查询,从 endTime 开始查询到 beginTime 之间的 limit 条记录

      • Optional type?: number

        类型,开发者可自定义映射关系,只能是整数. 缺省表示查询所有的类型

      • done?:function

    Returns void

  • getFriends(_options: { updateTime?: number; done?: any }): void
  • 如果开发者在初始化SDK的时候设置了syncFriends为false, 那么就收不到onfriends回调, 可以调用此接口来获取好友列表

    注:由于 v8.9.0 之后好友数量上限变为 10000,远端协议不允许一口气下发 10000 个。想要一口气获取有两种手段:

    1. 如果开发者使用数据库,那么此接口将会返回所有数据库中有效的,且 updateTime > options.updateTime 的好友记录

    2. 如果开发者不使用数据库,那么使用此接口,传入时间戳,将会从服务器获取 updateTime > options.timetag 的 3000 条记录,分页逻辑请自行处理。

    Parameters

    Returns 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

  • getLocalSession(_options: { sessionId: string; done: any }): void
  • getLocalSessions(_options: { lastSessionId?: string; limit?: number; reverse?: boolean; done: any }): void
  • 分页查询会话列表

    Parameters

    • _options: { lastSessionId?: string; limit?: number; reverse?: boolean; done: any }
      • Optional lastSessionId?: string

        上一页最后一条会话的 id,第一次查询可以不填。

      • Optional limit?: number

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

      • Optional reverse?: boolean

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

        false 即从最近的会话开始往前查找本地会话

        true 表示从第一条会话开始往后查找本地会话

      • done:function

    Returns void

  • getLocalSysMsgs(_options: { lastIdServer?: string; limit?: number; read?: boolean; reverse?: boolean; type?: "custom" | "addFriend" | "applyFriend" | "passFriendApply" | "rejectFriendApply" | "deleteFriend" | "teamInvite" | "rejectTeamInvite" | "applyTeam" | "rejectTeamApply" | "applySuperTeam" | "rejectSuperTeamApply" | "superTeamInvite" | "rejectSuperTeamInvite" | "deleteMsg"; done?: any }): void
  • 获取本地数据库里的系统通知

    Parameters

    • _options: { lastIdServer?: string; limit?: number; read?: boolean; reverse?: boolean; type?: "custom" | "addFriend" | "applyFriend" | "passFriendApply" | "rejectFriendApply" | "deleteFriend" | "teamInvite" | "rejectTeamInvite" | "applyTeam" | "rejectTeamApply" | "applySuperTeam" | "rejectSuperTeamApply" | "superTeamInvite" | "rejectSuperTeamInvite" | "deleteMsg"; done?: any }
      • Optional lastIdServer?: string

        上次查询的最后一条系统通知的 idServer

      • Optional limit?: number

        一页查询数量限制,默认 100

      • Optional read?: boolean

        是否已读.

      • Optional reverse?: boolean

        查询顺序

        默认 false. 表示从最近的系统通知开始往前查找本地系统通知. 若为 true 表示从第一条系统通知开始往后查找本地系统通知

      • Optional type?: "custom" | "addFriend" | "applyFriend" | "passFriendApply" | "rejectFriendApply" | "deleteFriend" | "teamInvite" | "rejectTeamInvite" | "applyTeam" | "rejectTeamApply" | "applySuperTeam" | "rejectSuperTeamApply" | "superTeamInvite" | "rejectSuperTeamInvite" | "deleteMsg"

        类型

      • done?:function

    Returns void

  • getLocalTeamMembers(_options: { accounts: string[]; teamId: string; done?: any }): void
  • getLocalTeams(_options: { teamIds: string[]; done: any }): void
  • getLoginStatus(): number
  • 获取当前登录状态. 稳定版自 8.9.127 以及 主干版本 9.16.2 起支持

    注1: 0 的未登录包含了初始状态和登录失败的状态

    注2: 3 的处于重连退避间隔中, 开发者不需要重新调用登录接口, 到期后 SDK 会自动重连.

    Returns number

    返回当前登录状态. 0: 未登录, 1: 已登录, 2: 登录中, 3: 处于重连退避间隔中.

  • getMsgPins(_options: { id: string; done?: any }): void
  • getMsgsByIdServer(_options: { reqMsgs: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string }[] }): void
  • 通过消息 id 等信息批量查询历史消息,thread 聊天专用

    Parameters

    • _options: { reqMsgs: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string }[] }
      • reqMsgs: { from: string; idServer: string; scene: "p2p" | "team" | "superTeam"; time: number; to: string }[]

        查询参数,摘取 NIMMessage 结构里的几个字段,且 idServer 在这里必填。

    Returns void

  • getMutedSuperTeamMembers(_options: { joinTime?: number; limit?: number; reverse?: boolean; teamId: string; done?: any }): void
  • getMutedTeamMembers(_options: { teamId: string; done?: any }): void
  • getMySuperTeamMembers(options: { teamIds: string[]; done: any }): void
  • getMyTeamMembers(options: { teamIds: string[]; done: any }): void
  • getNosAccessToken(_options: { ext?: string; url: string; userAgent?: string; done: any }): void
  • deprecated

    获取文件的短链接的鉴权 token。v8.10.0 后废弃,请使用 {@link CloudStorageInterface.getFileAuthToken}

    Parameters

    • _options: { ext?: string; url: string; userAgent?: string; done: any }
      • Optional ext?: string
      • url: string

        文件 url

      • Optional userAgent?: string
      • done:function
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { resUrl: string; token: string }
            • resUrl: string

              完整可访问的链接

            • token: string

          Returns void

    Returns void

  • getNosOriginUrl(_options: { safeShortUrl: string; done: any }): void
  • getQuickComments(_options: { msgs: NIMMessage[]; done?: any }): void
  • 批量查询消息的快捷评论

    Parameters

    • _options: { msgs: NIMMessage[]; done?: any }
      • msgs: NIMMessage[]

        被回复的消息

      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { commentTimetag: number; comments: { body: number; custom?: string; from: string; time: number }[]; idClient: string; idServer: string }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { commentTimetag: number; comments: { body: number; custom?: string; from: string; time: number }[]; idClient: string; idServer: string }
            • commentTimetag: number

              快捷评论的最近更新时间

            • comments: { body: number; custom?: string; from: string; time: number }[]

              评论内容

              • body: 快捷评论内容
              • custom: 扩展内容
              • from: 该评论的发送方的 account ID
              • time: 评论的发送时间
            • idClient: string

              被评论的消息的 idClient

            • idServer: string

              被评论的消息的 idServer

          Returns void

    Returns void

  • getRelations(_options: { done?: any }): void
  • 获取黑名单和静音列表。如果开发者在初始化SDK的时候设置了syncRelations为false, 那么就收不到onblacklist和onmutelist回调, 可以调用此接口来获取黑名单和静音列表。

    Parameters

    • _options: { done?: any }
      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { blacklist: { account: string; createTime: number; isBlack?: boolean; isMuted?: boolean; updateTime: number }[]; mutelist: { account: string; createTime: number; isBlack?: boolean; isMuted?: boolean; updateTime: number }[] }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { blacklist: { account: string; createTime: number; isBlack?: boolean; isMuted?: boolean; updateTime: number }[]; mutelist: { account: string; createTime: number; isBlack?: boolean; isMuted?: boolean; updateTime: number }[] }
            • blacklist: { account: string; createTime: number; isBlack?: boolean; isMuted?: boolean; updateTime: number }[]
              • account: IM account
              • isMuted: 是否被静音
              • isBlack: 是否被拉入黑名单
            • mutelist: { account: string; createTime: number; isBlack?: boolean; isMuted?: boolean; updateTime: number }[]
              • account: IM account
              • isMuted: 是否被静音
              • isBlack: 是否被拉入黑名单

          Returns void

    Returns void

  • getServerSession(_options: { scene: "p2p" | "team" | "superTeam"; to: string; done: any }): void
  • getServerSessions(_options: { limit?: number; maxTimestamp?: number; minTimestamp?: number; needLastMsg?: boolean; done: any }): void
  • 查询云端会话列表

    Parameters

    • _options: { limit?: number; maxTimestamp?: number; minTimestamp?: number; needLastMsg?: boolean; done: any }
      • Optional limit?: number

        分页大小,默认 100

      • Optional maxTimestamp?: number

        最大的时间戳。与 minTimestamp 组成一个时间段作为查询条件。

        默认当前时间戳

      • Optional minTimestamp?: number

        最小的时间戳。与 maxTimestamp 组成一个时间段作为查询条件。

        默认 0 表示不限制。

      • Optional needLastMsg?: boolean

        是否需要返回 last msg。默认 true

      • done:function

    Returns void

  • getServerTime(_options: { done: any }): void
  • getSessionsWithMoreRoaming(_options: { id: string; done?: any }): void
  • getStickTopSessions(_options: { done: any }): void
  • getSuperTeam(_options: { teamId: string; done: any }): void
  • getSuperTeamMembersByAccounts(_options: { accounts: string[]; teamId: string; done?: any }): void
  • getSuperTeamMembersByJoinTime(_options: { joinTime?: number; limit?: number; reverse?: boolean; teamId: string; done?: any }): void
  • 根据进群时间,分页获取超大群成员

    Parameters

    • _options: { joinTime?: number; limit?: number; reverse?: boolean; teamId: string; done?: any }
      • Optional joinTime?: number

        加入时间.

        注: 如果传入这个参数, 获取在这个时间之后加入的成员, 不传则不限制

      • Optional limit?: number

        分页限制, 默认 100, 返回 100 条数据

      • Optional reverse?: boolean

        查询顺序。默认 false

        false 即查询 joinTime 之后加入的成员

        true 即查询 joinTime 之前加入的成员

      • teamId: string
      • done?:function

    Returns void

  • getSuperTeams(_options: { done?: any }): void
  • 获取超级群列表。如果开发者在初始化SDK的时候设置了syncSuperTeams为false, 那么就收不到onSuperTeams回调, 可以调用此接口来获取超大群列表

    注: 没有本地 db 时,将会全量获取服务器的超级群列表

    Parameters

    Returns void

  • getTeam(_options: { sync?: boolean; teamId: string; done?: any }): void
  • getTeamMemberByTeamIdAndAccount(_options: { account: string; teamId: string; done?: any }): void
  • getTeamMemberInvitorAccid(_options: { accounts: string[]; teamId: string; done?: any }): void
  • 获取群成员的邀请者accid

    Parameters

    • _options: { accounts: string[]; teamId: string; done?: any }
      • accounts: string[]

        需要查询的群成员 account ID 账号列表.

        注: 每 200 个触发一次 done 回调提供.

      • teamId: string
      • done?:function
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: {}
            • [key: string]: string

              key 为入参里的 account ID, value 为邀请者的 account ID

          Returns void

    Returns void

  • getTeamMembers(_options: { teamId: string; done?: any }): void
  • getTeamMsgReadAccounts(_options: { teamMsgReceipt: { idClient?: string; idServer: string; teamId: string }; done?: any }): void
  • getTeamMsgReads(_options: { teamMsgReceipts: { idClient?: string; idServer: string; teamId: string }[]; done?: any }): void
  • 查询群组消息的已读、未读数量。

    • 对应于群组消息发送时配置了needMsgReceipt字段的群组消息,接收方可以对消息发送已读回执
    • done 回调的第二个参数是发送的参数,用于校验,第三个参数才是实际的结果
    • 在支持db,且存在idClient时:
      • 查询完成后,db中对应的msg会拥有 read和unread属性,分别对应消息的已读未读人数
      • unread为 0 后,消息的已读、未读数量便不会再变化了,因此建议在调用该接口前,过滤掉unread已为0的消息,减少不必要的性能消耗

    示例场景

    Parameters

    • _options: { teamMsgReceipts: { idClient?: string; idServer: string; teamId: string }[]; done?: any }
      • teamMsgReceipts: { idClient?: string; idServer: string; teamId: string }[]

        待查询的群消息列表

      • done?:function
        • 注意这个回调的真实返回数据在第三个参数

          Parameters

          Returns void

    Returns void

  • getTeams(_options: { done?: any }): void
  • 获取群列

    • 如果开发者在初始化SDK的时候设置了syncTeams为false, 那么就收不到onteams回调, 可以调用此接口来获取群列表

    注: 没有本地 db 时,将会全量获取服务器的群列表

    Parameters

    Returns void

  • getTeamsById(_options: { teamIds: string[]; done?: any }): void
  • 通过一批 teamId 来获取若干个群

    • 开发者可以调用此接口获取若干个群的资料

    注: v8.2.0+ 支持

    Parameters

    • _options: { teamIds: string[]; done?: any }

    Returns void

  • getTeamsFromDB(options: { teamIds?: string[]; done: any }): void
  • getThreadMsgs(_options: { beginTime?: number; endTime?: number; lastMsgId?: string; limit?: number; reverse?: boolean; scene: "p2p" | "team" | "superTeam"; threadMsgFromAccount: string; threadMsgIdServer: string; threadMsgTime: number; threadMsgToAccount: string; done?: any }): void
  • 获取 thread 消息列表

    Parameters

    • _options: { beginTime?: number; endTime?: number; lastMsgId?: string; limit?: number; reverse?: boolean; scene: "p2p" | "team" | "superTeam"; threadMsgFromAccount: string; threadMsgIdServer: string; threadMsgTime: number; threadMsgToAccount: string; done?: any }
      • Optional beginTime?: number

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

      • Optional endTime?: number

        时间戳, 结束时间, 精确到 ms, 默认为服务器的当前时间

      • Optional lastMsgId?: string

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

      • Optional limit?: number

        本次查询的消息数量限制, 最多100条, 默认100条

      • Optional reverse?: boolean

        默认false表示从 endTime 开始往前查找历史消息,true 表示从 beginTime 开始往后查找历史消息

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

        场景

      • threadMsgFromAccount: string

        thread根消息的from,即发送者账号

      • threadMsgIdServer: string

        thread根消息的 idServer

      • threadMsgTime: number

        thread根消息的time

      • threadMsgToAccount: string

        thread根消息的to,即接受者账号

      • done?:function

    Returns void

  • getUser(_options: { account: string; sync?: boolean; done?: any }): void
  • getUsers(_options: { accounts: string[]; sync?: boolean; done?: any }): void
  • 获取一批用户的名片, 每次最多 150 个.

    Parameters

    • _options: { accounts: string[]; sync?: boolean; done?: any }

    Returns void

  • insertLocalSession(_options: { scene: "p2p" | "team" | "superTeam"; to: string; done?: any }): void
  • 往本地数据库 indexdb 中插入一个会话

    • 如果不支持数据库, 则会在 sdk 内存中插入一条会话。不推荐没有 db 时使用该函数。用户应该在自己的内存数据中维护会话列表。

    • 如果会话已存在, 那么会返回错误

    • 如果有对应会话的本地历史消息, 那么会更新会话的 lastMsg 为最后一条消息

    • 插入成功后, 会触发onupdatesession回调

    Parameters

    Returns void

  • interlaceImage(_options: { url: string; done?: any }): void
  • interlace 图片

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • 在网络环境较差时, interlace 后的图片会以从模糊到清晰的方式呈现给用户

    Parameters

    Returns void

  • isMsgRemoteRead(_options: { msg: NIMMessage }): boolean
  • deprecated

    此接口用于查询p2p消息是否已接收已读回执,目前已废弃

    查询已读回执

    如何判断消息是否接收已读回执?当 msg.scene === 'p2p' && msg.flow === 'out' && msg.time <= session.msgReceiptTime 时,即可认为消息已收到已读回执

    Parameters

    Returns boolean

  • isMyFriend(_options: { account: string; done?: any }): void
  • 是否为我的好友

    注:该接口需要数据库支持,若没有开启本地数据库能力,done 回调里只会返回 false

    Parameters

    Returns void

  • isUserInBlackList(_options: { account: string; done?: any }): void
  • 查看某人是否在当前用户在黑名单里

    注:该接口需要数据库支持,若没有开启本地数据库能力,done 回调里只会返回 false

    Parameters

    Returns void

  • kick(_options: { deviceIds: []; done?: any }): void
  • leaveSuperTeam(_options: { teamId: string; done?: any }): void
  • leaveTeam(_options: { teamId: string; done?: any }): void
  • Return the number of listeners listening to a given event.

    Parameters

    Returns number

  • logout(): void
  • deprecated

    退出登录。

    注:SDK 版本 v9.6.0 以下推荐先调用 logout 再调用 disconnect/destroy 来保证退出。v9.6.0 及以上不需要调用这个 API,disconnect/destroy 断开前会自动调用。

    Returns void

  • markMsgRead(_options: { msgs: NIMMessage[]; done?: any }): 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

  • muteTeamAll(_options: { mute: boolean; teamId: string; done?: any }): void
  • notifyForNewTeamMsg(options: { teamIds: string[]; done: any }): void
  • packFileDownloadName(_options: { name: string; url: string }): string
  • passFriendApply(_options: { account: string; idServer: string; ps?: string; done?: any }): void
  • passSuperTeamApply(_options: { from: string; idServer: string; teamId: string; done?: any }): void
  • (管理员)通过超级群申请

    通过入群申请后:

    1. 所有群成员触发 onmsg:
      • msg.type: 'notification'
      • msg.from: 操作者账号
      • msg.to: 群id
      • msg.attach.type: 'passSuperTeamApply'
      • msg.attach.account: 申请方账号
      • msg.attach.members: 被通过申请的群成员列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddSuperTeamMembers
    4. 函数调用者触发 onupdatesysmsg

    Parameters

    • _options: { from: string; idServer: string; teamId: string; done?: any }

    Returns void

  • passTeamApply(_options: { from: string; idServer: string; teamId: string; done?: any }): void
  • (管理员)通过群申请

    通过入群申请后:

    1. 所有群成员触发 onmsg:
      • msg.type: 'notification'
      • msg.from: 操作者账号
      • msg.to: 群id
      • msg.attach.type: 'passTeamApply'
      • msg.attach.account: 申请方账号
      • msg.attach.members: 被通过申请的群成员列表
    2. 所有群成员触发 onupdatesessions
    3. 所有群成员触发 onAddTeamMembers
    4. 函数调用者触发 onupdatesysmsg

    Parameters

    • _options: { from: string; idServer: string; teamId: string; done?: any }

    Returns void

  • 上传并且预览文件。开发者在拿到文件对象之后, 可以调用发送文件消息来发送文件消息。

    注意一

    • fileInput、file、blob、filePath四个参数选择一个传入
    • fileInput: type='file'类型的input DOM元素的id。上传完成前请不要操作此节点上的文件
    • file: previewFile 回调函数的参数
    • blob: Blob类型JS对象
    • filePath: RN,小程序等特殊的 JS 运行环境专用(chooseImage 拿到的该临时路径)

    注意二

    • type: image、audio、video 或 file。默认为 file。主要区别在于消息体中 file 对象含有的信息不同
    • image: url, name, size, ext, w, h, type
    • audio: url, name, size, ext, container, dur
    • video: url, name, size, ext, container, dur, w, h
    • file: url, name, size, ext

    注意三

    • 文件大小限制为最大 100M
    • 高级浏览器会在上传前就检测文件大小
    • IE8/IE9 会在上传完成后检测文件大小

    Parameters

    Returns void

  • processImage(_options: { ops: NIMStrAnyObj; url: string; done?: any }): void
  • 处理图片

    此方法接收一组图片操作, 按操作顺序依次处理图片, 可选的操作包括:

    • 修改图片质量
    • interlace 图片
    • 旋转图片
    • 高斯模糊图片
    • 裁剪图片
    • 生成缩略图
    • 预览文件
    • 发送文件消息

    每个操作所需的参数请参考上面的各个方法, 除了上面方法列出来的参数之外, 每个操作需要提供操作类型, 分别是

    • 'quality'
    • 'interlace'
    • 'rotate'
    • 'blur'
    • 'crop'
    • 'thumbnail'

    示例代码

    // 裁剪后旋转
    var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA=';
    nim.processImage({
    url: url,
    ops: [
    {
    type: 'crop',
    x: 100,
    y: 0,
    width: 250,
    height: 250,
    },
    {
    type: 'thumbnail',
    mode: 'cover',
    width: 80,
    height: 80
    }
    ],
    done: processImageDone
    });
    function processImageDone(error, obj) {
    console.log('处理图片' + (!error?'成功':'失败'), error, obj);
    }

    Parameters

    • _options: { ops: NIMStrAnyObj; url: string; done?: any }
      • ops: NIMStrAnyObj

        操作序列. 按操作顺序依次处理图片, 具体格式参照前面几个和 image 相关的处理接口

        类似这样的效果

        [ { type: 'crop', x: 100, y: 0, width: 250, height: 250, }, { type: 'thumbnail', mode: 'cover', width: 80, height: 80 } ]

      • url: string
      • done?:function

    Returns void

  • publishEvent(_options: { broadcastType?: number; custom?: string; sync?: boolean; type: number; validTime?: number; value: number; done?: any }): void
  • 发布事件,事件订阅者会收到 onpushevents 回调函数

    IM订阅事件分为两类:

    1. 在线状态订阅, 主要用于监听好友的在线状态。初始化阶段,只有订阅监听的账户在线时,才会收到在线订阅事件
      • type = 1, value = 1: 用户在线
      • type = 1, value = 2: 用户登出
      • type = 1, value = 3: 用户断开连接
    2. 用户自定义事件。如果云信系统内置的在线状态事件无法满足应用需求,需要自定义事件时,可以使用该 API 来发布自定义事件。用户自定义的订阅事件必须为 type = 1, value >= 10000

    关联函数

    Parameters

    • _options: { broadcastType?: number; custom?: string; sync?: boolean; type: number; validTime?: number; value: number; done?: any }
      • Optional broadcastType?: number

        广播类型

        1: 仅在线 2:在线和离线

      • Optional custom?: string

        用户自定义事件扩展属性

      • Optional sync?: boolean

        是否同步给自己

      • type: number

        事件类型, 目前只有 1。

      • Optional validTime?: number

        发布事件的有效时间 单位秒 60s~7天(604800s),默认 7 天

      • value: number

        事件状态/事件内容,由开发者做自定义映射

        注:value 须为 10000 以上 (1-9999为云信预定义值,开发者不可使用,1代表上线,2代表下线,3代表断开连接)

      • done?:function

    Returns void

  • qualityImage(_options: { quality: number; url: string; done?: any }): void
  • 修改图片质量

    • 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url
    • 默认图片质量为100, 开发者可以降低图片质量来省流量

    Parameters

    • _options: { quality: number; url: string; done?: any }
      • quality: number

        图片质量, 必须为整数, 取值范围为 0-100

      • url: string

        NOS 图片源链接

      • done?:function

    Returns void

  • querySubscribeEventsByAccounts(_options: { accounts: string[]; type: number; done?: any }): void
  • querySubscribeEventsByType(_options: { type: number; done?: any }): void
  • recallMsg(_options: { apnsText?: string; attach?: string; env?: string; msg: NIMMessage; ps?: string; pushPayload?: string; done?: any }): void
  • 描述

    撤回消息。

    使用场景

    消息发送后的可撤回时长(默认 2 分钟,可在云信控制台配置)内,发送方撤回已发送的单聊消息或者群消息。

    • 单聊场景下,发送方撤回之后,对应的离线消息、漫游消息和历史消息将被删除,消息接收方会收到一条类型为 deleteMsg 的系统通知。
    • 群聊场景下, 所有群成员都会收到类型为 deleteMsg 的系统通知。
    • 如果发送方同时在多个端登录了同一个 IM 账号, 那么其它端也会收到类型为 deleteMsg 的系统通知。

    注意

    单聊和群聊消息的撤回功能存在些许区别:

    • 单聊:用户只能撤回自己发送的消息。
    • 群聊:普通成员只能撤回自己发送的消息。管理员可撤回其他群成员的消息。

    使用限制

    • 如果消息发送失败或者消息发送者被拉黑,那么即使在可撤回时长内也无法撤回。
    • 消息撤回后,无论是发送方还是接收方,都无法在历史消息、漫游消息或者离线消息的接口返回中,查到该消息。
    • 以下情况下,消息撤回会失败:消息为空、消息没有发送成功、消息超过撤回时限,或者消息被反垃圾(内容审核)命中时。

    关联函数

    示例场景

    Parameters

    • _options: { apnsText?: string; attach?: string; env?: string; msg: NIMMessage; ps?: string; pushPayload?: string; done?: any }
      • Optional apnsText?: string

        自定义推送文案

      • Optional attach?: string

        附加信息,推荐使用 JSON 格式化字符串

      • Optional env?: string

        抄送环境

      • msg: NIMMessage

        待撤回的消息

      • Optional ps?: string

        附言

      • Optional pushPayload?: string

        第三方自定义的推送属性,限制使用 JSON 格式化的字符串

      • done?:function

    Returns void

  • rejectFriendApply(_options: { account: string; idServer: string; ps: string; done?: any }): void
  • rejectSuperTeamApply(_options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }): void
  • 管理员拒绝超级群申请

    拒绝群申请后 :

    • 申请者会收到系统通知 onsysmsg
      • from: 拒绝方的账号
      • to: 群id
      • attach: 群信息
    • 函数调用者触发 onupdatesysmsg

    Parameters

    • _options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }
      • from: string

        申请者的 accountId

      • idServer: string

        用户申请进群的系统通知的 idServer

      • Optional ps?: string

        附加信息

      • teamId: string
      • done?:function

    Returns void

  • rejectSuperTeamInvite(_options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }): void
  • 拒绝入群邀请

    用户拒绝群邀请后:

    • 邀请者会收到系统通知 onsysmsg
      • type: 'rejectSuperTeamInvite'
      • from: 拒绝入群邀请的账号
      • to: 群id
    • 函数调用者触发 onupdatesysmsg

    Parameters

    • _options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }
      • from: string

        申请者的 accountId

      • idServer: string

        管理员邀请此用户进群的系统通知的 idServer

      • Optional ps?: string

        附加信息

      • teamId: string
      • done?:function

    Returns void

  • rejectTeamApply(_options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }): void
  • 管理员拒绝群申请

    拒绝群申请后 :

    • 申请者会收到系统通知 onsysmsg
      • from: 拒绝方的账号
      • to: 群id
      • attach: 群信息
    • 函数调用者触发 onupdatesysmsg

    Parameters

    • _options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }
      • from: string

        申请者的 accountId

      • idServer: string

        用户申请进群的系统通知的 idServer

      • Optional ps?: string

        附加信息

      • teamId: string
      • done?:function

    Returns void

  • rejectTeamInvite(_options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }): void
  • 拒绝入群邀请

    用户拒绝群邀请后:

    • 邀请者会收到系统通知 onsysmsg
      • type: 'rejectTeamInvite'
      • from: 拒绝入群邀请的账号
      • to: 群id
    • 函数调用者触发 onupdatesysmsg

    Parameters

    • _options: { from: string; idServer: string; ps?: string; teamId: string; done?: any }
      • from: string

        申请者的 accountId

      • idServer: string

        管理员邀请此用户进群的系统通知的 idServer

      • Optional ps?: string

        附加信息

      • teamId: string
      • done?:function

    Returns void

  • Remove all listeners, or those of the specified event.

    Parameters

    Returns NIM

  • removeFromBlacklist(_options: { account: string; done?: any }): void
  • 移出黑名单。调用后,初始化同步阶段收到 onblacklist 回调,多端同步阶段收到 onsyncmarkinblacklist 回调

    示例场景

    Parameters

    • _options: { account: string; done?: any }
      • account: string
      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }
            • account: string

              被操作者账号 ID

            • isAdd: boolean

              是否加入名单(黑名单或者静音列表)

              true 代表某人被加入名单,false 代表某人被移出名单

            • record: { account: string; updateTime: number }

              该操作记录的详情

              • account: string

                被操作者账号 ID

              • updateTime: number

                更新时间戳

          Returns void

    Returns void

  • removeFromMutelist(_options: { account: string; done?: any }): void
  • 移出静音列表。调用后,初始化同步阶段收到 onmutelist 回调,多端同步阶段收到 onsyncmarkinmutelist 回调

    设置静音列表有两个作用:

    1. 开发者根据用户是否在静音列表,决定是否显示未读数等提示UI
    2. 静音列表中用户发送消息,不会触发推送服务

    示例场景

    Parameters

    • _options: { account: string; done?: any }
      • account: string
      • done?:function
        • done(err: null | NIMCommonError | Error | NIMStrAnyObj, data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }): void
        • Parameters

          • err: null | NIMCommonError | Error | NIMStrAnyObj
          • data: { account: string; isAdd: boolean; record: { account: string; updateTime: number } }
            • account: string

              被操作者账号 ID

            • isAdd: boolean

              是否加入名单(黑名单或者静音列表)

              true 代表某人被加入名单,false 代表某人被移出名单

            • record: { account: string; updateTime: number }

              该操作记录的详情

              • account: string

                被操作者账号 ID

              • updateTime: number

                更新时间戳

          Returns void

    Returns void