UNPKG

@22g/netease-im-web-sdk

Version:

typescript netease-im-web-sdk

1,028 lines (859 loc) 87.2 kB
import { AnyIndexObject, ArrayOr, Identity, NullOr, PickKeysIncludeVal } from '@22g/utility-types'; import { NIMBasicMessage, NIMMessage, NIMMessageType, NIMSceneType } from './NIM/Message'; import { NIMAsyncFunc, NIMAsyncFuncOptions, NIMAsyncFuncPromiseify, NIMAudioFile, NIMError } from './NIM/Basic'; import { NIMSystemMessage, NIMSystemMessageCategory } from './NIM/SystemMessage'; import { NIMSession } from './NIM/Session'; import { NIMLoginPort } from './NIM/LoginPort'; import { NIMUser } from './NIM/User'; import { NIMRelation } from './NIM/Relation'; import { NIMFriend } from './NIM/Friend'; import { NIMUtils } from './NIM/Utils'; import { NIMTeamMember } from './NIM/TeamMember'; import { NIMTeam } from './NIM/Team'; import { NIMInitConf } from './NIM/InitConf'; import * as AsyncFuncOpts from './NIM/AsyncFuncOptions'; export * from './NIM/ChatroomInfo'; export * from './NIM/ChatroomMember'; export * from './NIM/ChatroomMessage'; export * from './NIM/SuperTeam'; export * from './NIM/SuperTeamMember'; export * from './NIM/LoginPort'; export * from './NIM/User'; export * from './NIM/Message'; export * from './NIM/Basic'; export * from './NIM/AsyncFuncOptions'; export * from './NIM/SystemMessage'; export * from './NIM/Session'; export * from './NIM/Relation'; export * from './NIM/Friend'; export * from './NIM/Utils'; export * from './NIM/TeamMember'; export * from './NIM/Team'; export * from './NIM/InitConf'; export * from './NIM/MsgEvent'; /** 当前云信SDK版本 */ export type VERSION = '8.1.0'; declare namespace NIM { } export default class NIM { /** * 此接口为单例模式, 对于同一个账号, 永远返回同一份实例, 即只有第一次调用会初始化一个实例 * - 后续调用此接口会直接返回初始化过的实例, 同时也会调用接口setOptions更新传入的配置 * - 后续调用此接口时, 如果连接已断开, 会自动建立连接 * - 当发生掉线时,SDK会自动进行重连 */ static getInstance(initConf: NIMInitConf): NIM; static support: { /** 是否支持IndexedDB */ db: boolean; }; static blob: { /** 将包含 MIME type 和 base64 数据的 data URL 转换为 Blob 对象 */ fromDataURL(dataUrl: string): Blob, }; /** * NIM 自带的工具函数 * - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/util.html) */ static util: NIMUtils; /** * SDK版本信息 */ static info: { hash: string; nrtcSdkVersion: string; nrtcVersion: string; protocolVersion: number; sdkVersion: string; shortHash: string; version: string; }; constructor(initConf: NIMInitConf); public info: typeof NIM['info']; /** 判断是否已连接 */ public isConnected(): boolean; /** * [🔗接受入群邀请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#acceptTeamInvite__anchor) * @param options [[NIMAcceptTeamInviteOpts]] * - 高级群的群主和管理员在邀请成员加入群(通过操作[[NIM.createTeam|`创建群`]]或[[NIM.addTeamMembers|`拉人入群`]])之后, 被邀请的人会收到一条类型为`'teamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为邀请方的帐号, `to`字段的值为对应的群ID, 此类系统通知的`attach`有一个字段team的值为被邀请进入的[[NIMTeam|`群`]], 被邀请的人可以选择接受邀请或者拒绝邀请 * + 如果[[NIM.acceptTeamInvite|`接受入群邀请`]], 那么该群的所有群成员会收到一条类型为`'acceptTeamInvite'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为接受入群邀请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]], `attach`有一个字段`members`的值为接收入群邀请的群成员列表。 * + 如果[[NIM.rejectTeamInvite|`拒绝入群邀请`]], 那么邀请你的人会收到一条类型为`'rejectTeamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝入群邀请的人的帐号, `to`字段的值为对应的群ID */ public acceptTeamInvite: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAcceptTeamInviteOpts>>; /** * 直接加为好友 * @param options [[NIMAddFriendOpts]] * - [[NIM.addFriend|`直接加某个用户为好友`]]后, 对方不需要确认, 直接成为当前登录用户的好友。 * -对方会收到一条类型为`'addFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号。 */ public addFriend: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddFriendOpts>>; /** * [🔗 拉人入超大群,无需对方同意](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addSuperTeamMembers__anchor) * - [[NIM.addTeamMembers|`拉人入群`]], 所有[[NIMSuperTeamMember|`超大群群成员`]]会收到一条类型为[[NIM.addSuperTeamMembers|`'addSuperTeamMembers'`]]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为邀请者的帐号, `to`字段的值为对应的群ID;`attach`有一个字段`team`的值为对应的[[NIMSuperTeam|`超大群对象`]],有一个字段members是被邀请新入群的成员信息数组 */ public addSuperTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddSuperTeamMembersOpts>>; /** * [🔗 添加群管理员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addTeamManagers__anchor) * - [[addTeamManagers|`添加群管理员`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'addTeamManagers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为添加群管理员的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`accounts`的值为被加为管理员的帐号列表, `attach`有一个字段`members`的值为被加为管理员的群成员列表。 */ public addTeamManagers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddTeamManagersOpts>>; /** * [🔗 拉人入群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addTeamMembers__anchor) * - 普通群, [[NIM.addTeamMembers|`拉人入群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'addTeamMembers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为拉人的人的帐号,`to`字段的值为对应的群ID,`attach`有一个字段`team`的值为对应的[群对象](#群对象),`attach`有一个字段`accounts`的值为被拉的人的帐号列表,`attach`有一个字段`members`的值为被拉的群成员列表。 * + 被邀请的群成员在有人说话后才能看到该[[NIMTeam|`群`]], 而且会先收到一条类型为`'addTeamMembers'`的[[NIMMessage|`群通知消息`]], 然后会收到其它`群消息`。 * - 高级群的群主和管理员在邀请成员加入群(通过操作[[NIM.createTeam|`创建群`]]或[[NIM.addTeamMembers|`拉人入群`]])之后, 被邀请的人会收到一条类型为`'teamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为邀请方的帐号, `to`字段的值为对应的群ID, 此类系统通知的`attach`有一个字段`team`的值为被邀请进入的[[NIMTeam|`群`]], 被邀请的人可以选择接受邀请或者拒绝邀请。 * + 如果[[NIM.acceptTeamInvite|`接受入群邀请`]], 那么该群的所有群成员会收到一条类型为`'acceptTeamInvite'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为接受入群邀请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`members`的值为接收入群邀请的群成员列表。 * + 如果[[NIM.rejectTeamInvite|`拒绝入群邀请`]], 那么邀请你的人会收到一条类型为`'rejectTeamInvite'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝入群邀请的人的帐号, `to`字段的值为对应的群ID。 */ public addTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddTeamMembersOpts>>; /** * [🔗 加入黑名单](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addToBlacklist__anchor) * - 如果一个用户被加入了黑名单, 那么就不再会收到此用户发送的消息 * - SDK内部调用 [[NIM.markInBlacklist]] 来完成实际工作 */ public addToBlacklist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddToBlacklistOpts>>; /** * [🔗 加入静音列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#addToMutelist__anchor) * - SDK只负责维护静音列表, 具体要根据静音列表进行的操作由开发者决定 * - SDK内部调用[[NIM.markInMutelist|`NIM.markInMutelist`]]来完成实际工作 */ public addToMutelist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAddToMutelistOpts>>; /** * [🔗 申请加为好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#applyFriend__anchor) * - [[NIM.applyFriend|`申请加某个用户为好友`]]后, 对方会收到一条类型为`'applyFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请 * + 如果[[NIM.passFriendApply|`通过好友申请`]], 那么申请方会收到一条类型为`'passFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类群通知消息的`from`字段的值为通过方的帐号, to字段的值为申请方的账号。 * + 如果[[NIM.rejectFriendApply|`拒绝好友申请`]], 那么申请方会收到一条类型为`'rejectFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, to字段的值为申请方的账号 */ public applyFriend: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMApplyFriendOpts>>; /** * [🔗 申请入群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#applyTeam__anchor) * - 用户可以主动[[NIM.applyTeam|`申请加入高级群`]], 目标群的群主和管理员会收到一条类型为`'applyTeam'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 * + 如果[[NIM.passTeamApply|`通过入群申请`]], 那么该群的所有群成员会收到一条类型为`'passTeamApply'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为通过入群申请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段team的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段account包含了申请方的帐号, `attach`有一个字段`members`的值为被通过申请的群成员列表。 * + 如果[[NIM.rejectTeamInvite|`拒绝入群邀请`]], 那么申请人会收到一条类型为`'rejectTeamApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]]。 */ public applyTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMApplyTeamOpts>>; /** * [🔗 将音频 `url` 转为 mp3](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#audioToMp3__anchor) * @returns 新的 `url` */ public audioToMp3(opts: { url: NIMAudioFile['url'] }): string; /** * [🔗 音频转文字](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#audioToText__anchor) * - 仅支持通过[[NIM.previewFile|`previewFile`]]或者[[NIM.sendFile|`sendFile`]]拿到的音频 url, 或者收到的音频消息的 url */ public audioToText: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMAudioToTextOpts>>; /** * [🔗 高斯模糊图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#blurImage__anchor) * - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url */ public blurImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMBlurImageOpts>>; /** * [🔗 删除单人会话服务器聊天记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#clearServerHistoryMsgs__anchor) * - */ public clearServerHistoryMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMClearServerHistoryMsgsOpts>>; /** * [🔗 登录 SDK](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#connect__anchor) * - */ public connect(): void; /** * [🔗 创建群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#createTeam__anchor) * - [[NIMTeam.type|`普通群`]]不可以设置[[NIMTeam.joinMode|`群加入方式`]] * - [[NIMTeam.type|`高级群`]]的[[NIMTeam.joinMode|`群加入方式`]]默认为`'needVerify'` * - [[NIMTeam.type|`高级群`]]的[[NIMTeam.inviteMode|`群被邀请模式`]]默认为`'needVerify'` * - [[NIMTeam.type|`高级群`]]的[[NIMTeam.inviteMode|`群邀请模式`]]默认为`'manager'` * - [[NIMTeam.type|`高级群`]]的[[NIMTeam.updateTeamMode|`群信息修改权限`]]默认为`'manager'` * - [[NIMTeam.type|`高级群`]]的[[NIMTeam.updateCustomMode|`群信息自定义字段修改权限`]]默认为`'manager'` * - [[NIMTeam.type|`普通群`]]被邀请的[[NIMTeamMember|`群成员`]]在有人说话之后才会看到该群, 而且会先收到一条类型为[[NIM.addTeamMembers|`'addTeamMembers'`]]的[[NIMMessage|`群通知消息`]], 然后会收到其它[[NIMMessage|`群消息`]]。 * - [[NIMTeam.type|`高级群`]]被邀请的[[NIMTeamMember|`群成员`]]会收到一条类型为[[NIMSystemMessage.type|`'teamInvite'`]]的[[NIMSystemMessage|`系统通知`]] * - 接受邀请后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为[[NIM.acceptTeamInvite|`'acceptTeamInvite'`]]的[[NIMMessage|`群通知消息`]]。 * - 拒绝邀请后, `群主`会收到一条类型为[[NIM.rejectTeamInvite|`'rejectTeamInvite'`]]的系统通知。 */ public createTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMCreateTeamOpts>>; /** * [🔗 裁剪图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cropImage__anchor) * - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url * - 从坐标 (x, y) 处截取尺寸为 width*height 的图片, (0, 0) 代表左上角 * - width/height 不能小于0, 如果 width/height 大于图片的原始宽度/高度, 那么将被替换为图片的原始宽度/高度 */ public cropImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMCropImageOpts>>; /** * [🔗 去除好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutFriends__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的好友列表 * - 去除时按照 [[NIMFriend.account]] 的值去除 * - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作 * @returns 去除后的好友数组 */ public cutFriends<T extends NIMFriend>(old: T[], invalids: ArrayOr<T>): T[]; /** * [🔗 去除消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutMsgs__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的消息列表 * - 去除时按照 [[NIMMessage.idClient]] 的值去除 * - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作 * - TODO: 云信的文档上没有说明,但实际是存在的 * @returns 去除后的消息数组 */ public cutMsgs<T extends NIMMessage>(old: T[], invalids: ArrayOr<T>): T[]; /** * [🔗 去除好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutSessions__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的会话列表 * - 去除时按照 [[NIMSession.id]] 的值去除 * - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作 * - TODO: 云信的文档上没有说明,但实际是存在的 * @returns 去除后的会话数组 */ public cutSessions<T extends NIMSession>(old: T[], invalids: ArrayOr<T>): T[]; /** * [🔗 去除accounts对应的好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutFriendsByAccounts__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的好友列表 * - 去除时按照 [[NIMFriend.account]] 的值去除 * - 此方法内部调用 [[NIM.cutFriends]] 来完成实际工作 * @returns 去除后的好友数组 */ public cutFriendsByAccounts<T extends NIMFriend>(olds: T[], invalids: ArrayOr<T['account']>): T[]; /** * [🔗 去除登录端](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutLoginPorts__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的登录端列表 * - 去除时按照 [[NIMLoginPort.account]] 的值去除 * - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作 * @returns 去除后的登录端数组 */ public cutLoginPorts<T extends NIMLoginPort>(old: T[], invalids: ArrayOr<T>): T[]; /** * [🔗 去除关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutRelations__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的关系列表 * - 去除时按照 [[NIMRelation.account]] 的值去除 * - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作 * @returns 去除后的关系数组 */ public cutRelations<T extends NIMRelation>(old: T[], invalids: ArrayOr<T>): T[]; /** * [🔗 去除群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutTeamMembers__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的群成员列表 * - 去除时按照 `id`的值去除 * - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作 * @returns 去除后的群成员数组 */ public cutTeamMembers<T extends NIMTeamMember>(old: T[], invalids: ArrayOr<T>): T[]; /** * [🔗 功能名](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutTeamMembersByAccounts__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的群成员列表 * - 去除时按照 [[NIMTeamMember.account]] 的值去除 * - 此方法内部调用 [[NIM.cutTeamMembers]] 来完成实际工作 * @returns 去除后的群成员数组 */ public cutTeamMembersByAccounts<T extends NIMTeamMember>(olds: T[], invalids: ArrayOr<T['account']>): T; /** * [🔗 去除群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#cutTeams__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含去除后的群列表 * - 去除时按照 [[NIMTeamMember.teamId]] 的值去除 * - 此方法内部调用 [[NIMUtils.cutObjArray]] 来完成实际工作 * @returns 去除后的群数组 */ public cutTeams<T extends NIMTeam>(old: T[], invalids: ArrayOr<T>): T[]; /** * [🔗 删除所有本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteAllLocalMsgs__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功 * - 此方法同时会清空所有的会话, 请开发者自己清空内存里面的会话列表 */ public deleteAllLocalMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteAllLocalMsgsOpts>>; /** * [🔗 删除所有本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteAllLocalSysMsgs__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功 */ public deleteAllLocalSysMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteAllLocalSysMsgsOpts>>; /** * [🔗 删除好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteFriend__anchor) * - [[NIM.deleteFriend|`删除好友`]]后, 被删除的人会收到一条类型为`'deleteFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为删除方的帐号, `to`字段的值为被删除方的账号。 */ public deleteFriend: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteFriendOpts>>; /** * [🔗 功能名](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsg__anchor) * - 在[[NIM.support|`支持数据库`]]时 * + 如果删除的是对应会话的最后一条消息, 那么对应会话的 `lastMsg` 属性会自动变为变为上一条消息, 同时触发 `onupdatesession` 回调 * + 如果对应的消息不存在, 算成功 * - 如果不[[NIM.support|`支持数据库`]], 算成功 */ public deleteLocalMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalMsgOpts>>; /** * [🔗 删除某个会话的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsgs__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功 * - 结束时间大于开始时间 * - 如不传开始时间和结束时间,则删除某个会话的所有本地消息 相当于[[NIM.deleteLocalMsgsBySession|`删除某个会话的本地消息`]] */ public deleteLocalMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalMsgsOpts>>; /** * [🔗 删除某个会话的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalMsgsBySession__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功 */ public deleteLocalMsgsBySession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalMsgsBySessionOpts>>; /** * [🔗 删除本地会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalSession__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功 * - 在[[NIM.support|`支持数据库`]]时, 删了本地会话之后, 下次同步就同步不到对应的会话 * - 如果对应的会话不存在, 算成功 */ public deleteLocalSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalSessionOpts>>; /** * [🔗 删除本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalSysMsg__anchor) * - 删除 `idServer` 对应的本地系统通知 * - 如果不[[NIM.support|`支持数据库`]], 算成功 * - 如果对应的系统通知不存在, 算成功 */ public deleteLocalSysMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalSysMsgOpts>>; /** * [🔗 删除 teamId 对应的本地群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteLocalTeam__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功 * - 如果当前用户还在群里面, 那么会失败 * - 如果对应的群不存在, 算成功 * - 如果传了多个 teamId, 但是当前用户还在某个群里面, 那么会失败, 但是所有用户不在的群都会被删掉 */ public deleteLocalTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteLocalTeamOpts>>; /** * [🔗 撤回消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteMsg__anchor) * - [[NIM.deleteMsg|`撤回消息`]]后, 消息接收方会收到一条类型为`'deleteMsg'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的 `msg` 为被删除的消息的部分字段。如果是群消息, 那么群里的所有人都会收到这条系统通知. 如果同时在多个端登录了同一个账号, 那么其它端也会收到这条系统通知. */ public deleteMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteMsgOpts>>; /** * [🔗 删除服务器上的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteSession__anchor) * - 删了服务器上的会话之后, 在不[[NIM.support|`支持数据库`]]时, 下次同步就同步不到对应的会话以及会话对应的漫游消息; * - 此外, 在新设备上也同步不到对应的会话以及会话对应的漫游消息 */ public deleteSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteSessionOpts>>; /** * [🔗 批量删除服务器上的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#deleteSessions__anchor) * - 删了服务器上的会话之后, 在不[[NIM.support|`支持数据库`]]时, 下次同步就同步不到对应的会话以及会话对应的漫游消息; 此外, 在新设备上也同步不到对应的会话以及会话对应的漫游消息 */ public deleteSessions: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDeleteSessionsOpts>>; /** * [🔗 登出 SDK](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#disconnect__anchor) * - */ public disconnect(): void; /** * [🔗 解散群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#dismissTeam__anchor) * - [[NIM.dismissTeam|`解散群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为[NIM.dismissTeam|`'dismissTeam'`]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段为解散群的人的帐号, `to`字段的值为被对应的群ID。 */ public dismissTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMDismissTeamOpts>>; /** * [🔗 在好友数组里面根据 account 找到对应的好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findFriend__anchor) * 在好友数组里面根据 `account` 找到对应的好友 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param account 待查找的好友的 account[[NIMFriend.account]] * @returns 对应的好友或者 null */ public findFriend<T extends NIMFriend>(friends: T[], account: T['account']): NullOr<T>; /** * [🔗 在消息数组里面根据 idClient 找到对应的消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findMsg__anchor) * 在消息数组里面根据 `idClient` 找到对应的消息 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param idClient 待查找的消息的 idClient[[NIMMessage.idClient]] * @returns 对应的消息或者 null */ public findMsg<T extends NIMMessage>(msgs: T[], idClient: T['idClient']): NullOr<T>; /** * [🔗 在关系数组里面根据 account 找到对应的关系](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findRelation__anchor) * 在关系数组里面根据 `account` 找到对应的关系 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param account 待查找的关系的account[[NIMRelation.account]] * @returns 对应的关系或者 null */ public findRelation<T extends NIMRelation>(relations: T[], account: T['account']): NullOr<T>; /** * [🔗 在会话数组里面根据 id 找到对应的会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findSession__anchor) * 在会话数组里面根据 `id` 找到对应的会话 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param sessionId 待查找的会话的id[[NIMSession.id]] * @returns 对应的会话或者 null */ public findSession<T extends NIMSession>(sessions: T[], sessionId: T['id']): NullOr<T>; /** * [🔗 在系统通知数组里面根据 idServer 找到对应的系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findSysMsg__anchor) * 在系统通知数组里面根据 `idServer` 找到对应的系统通知 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param idServer 消息serverId[[NIMSystemMessage.idServer]] * @returns 对应的系统通知或者 null */ public findSysMsg<T extends NIMSystemMessage>(sysMsgs: T[], idServer: T['idServer']): NullOr<T>; /** * [🔗 在群数组里面根据 teamId 找到对应的群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findTeam__anchor) * 在群数组里面根据 `teamId` 找到对应的群 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param teamId 群id [[NIMTeam.teamId]] * @returns 对应的群或者 null */ public findTeam<T extends NIMTeam>(teams: T[], teamId: T['teamId']): NullOr<T>; /** * [🔗 在群成员数组里面根据 id 找到对应的群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findTeamMember__anchor) * 在群成员数组里面根据 `id` 找到对应的群成员 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param id 群id [[NIMTeamMember.teamId]] * @returns 对应的群成员或者 null */ public findTeamMember<T extends NIMTeamMember>(members: T[], id: T['teamId']): NullOr<T>; /** * [🔗 在名片数组里面根据 account 找到对应的名片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#findUser__anchor) * 在名片数组里面根据 `account` 找到对应的名片 * - 此方法内部调用 [[NIMUtils.findObjInArray]] 来完成实际工作 * @param account 用户账号[[NIMUser.account]] * @returns 对应的名片或者 null */ public findUser<T extends NIMUser>(users: T[], account: T['account']): NullOr<T>; /** * [🔗 转发消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#forwardMsg__anchor) * - */ public forwardMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMForwardMsgOpts>>; /** * [🔗 获取超大群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getAllSuperTeamMembers__anchor) * 群成员信息体积太大时,会分多次返回,即options.done会被调用多次,回调函数的第二个参数有一个isAll属性,用来标示是否返回完毕 * - 接受入群邀请之后可调用此方法来获取[[NIMSuperTeamMember|`超大群群成员`]]列表 */ public getAllSuperTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetAllSuperTeamMembersOpts>>; /** * [🔗 获取聊天室服务器地址](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getChatroomAddress__anchor) * - 可以在 IM 连接上获取聊天室服务器地址 */ public getChatroomAddress: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetChatroomAddressOpts>>; /** * [🔗 获取好友列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getFriends__anchor) * - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了[[NIMInitConf.syncFriends]]为`false`, 那么就收不到 [[NIMInitConf.onfriends]]回调, 可以调用此接口来获取好友列表。 */ public getFriends: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetFriendsOpts>>; /** * [🔗 获取云端历史记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getHistoryMsgs__anchor) * - 该接口用于获取一段时间内的历史消息, 由参数`beginTime`和`endTime`来控制时间范围。 * + 当`reverse`为`false`时, 后续查询的`endTime`对应上次查询的最后一条消息的`time`字段 * + 当`reverse`为`true`时, 后续查询的`beginTime`对应上次查询的最后一条消息的`time`字段 * - 如果要搜索历史消息, 请参考`获取包含关键词的历史消息` */ public getHistoryMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetHistoryMsgsOpts>>; /** * [🔗 搜索历史消息(收费API?)](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#searchHistoryMsgs__anchor) * - TODO: 官方API文档中没有说明 */ public searchHistoryMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSearchHistoryMsgsOpts>>; /** * [🔗 获取 idClient 对应的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgByIdClient__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回 null */ public getLocalMsgByIdClient: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalMsgByIdClientOpts>>; /** * [🔗 获取本地历史记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgs__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组 */ public getLocalMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalMsgsOpts>>; /** * [🔗 获取 idClients 对应的本地消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalMsgsByIdClients__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组 */ public getLocalMsgsByIdClients: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalMsgsByIdClientsOpts>>; /** * [🔗 通过sessionId获取本地会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSession__anchor) * - 如果[[NIM.support|`支持数据库`]], 则查找数据库中的对应会话,有则返回会话对象,无则返回 null * - 如果不[[NIM.support|`支持数据库`]], 则查找之前同步到的会话列表,有则返回会话对象,无则返回 null */ public getLocalSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSessionOpts>>; /** * [🔗 获取本地会话列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSessions__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组 * - 会话列表按时间逆序排列, 即最近聊过天的放在列表的最前面 */ public getLocalSessions: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSessionsOpts>>; /** * [🔗 获取本地会话列表,开发者可以指定排除lastMsg的类型,比如获取每个会话中非通知类型的消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSessionsByMsgType__anchor) * - 如果不[[NIM.support|`支持数据库`]], 返回空数组 * - 会话列表按时间逆序排列, 即最近聊过天的放在列表的最前面 * - 与`getLocalSessions`不同的是,该接口可以排除或指定lastMsg的类型,如当 `excludeType='notification'` 时,返回的session列表是包含非通知类型消息的会话,该会话的lastMsg为最后一条非通知消息 */ public getLocalSessionsByMsgType: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSessionsByMsgTypeOpts>>; /** * [🔗 获取本地系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalSysMsgs__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功, 返回空数组 */ public getLocalSysMsgs: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalSysMsgsOpts>>; /** * [🔗 获取teamIds对应的本地群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getLocalTeams__anchor) * - 如果不[[NIM.support|`支持数据库`]], 算成功 */ public getLocalTeams: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetLocalTeamsOpts>>; /** * [🔗 获取群禁言成员列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getMutedTeamMembers__anchor) * - */ public getMutedTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetMutedTeamMembersOpts>>; /** * [🔗 获取当前多端推送配置选项](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getPushNotificationMultiportConfig__anchor) * - */ public getPushNotificationMultiportConfig(): { shouldPushNotificationWhenPCOnline: boolean }; /** * [🔗 获取黑名单和静音列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getRelations__anchor) * - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了`syncSuperTeams`为`false`, 那么就收不到`onblacklist`和`onmutelist`回调, 可以调用此接口来获取黑名单和静音列表。 */ public getRelations: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetRelationsOpts>>; /** * [🔗 获取超大群信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeam__anchor) * - 开发者可以调用此接口根据群ID获取群资料 */ public getSuperTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetSuperTeamOpts>>; /** * [🔗 根据进群时间,分页获取超大群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeamMembersByJoinTime__anchor) * - 接受入群邀请之后可调用此方法来分页获取[[NIMSuperTeamMember|`超大群群成员`]]列表 */ public getSuperTeamMembersByJoinTime: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetSuperTeamMembersByJoinTimeOpts>>; /** * [🔗 获取所在的超大群列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getSuperTeams__anchor) * - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了`syncSuperTeams`为`false`, 那么就收不到`onSuperTeams`回调, 可以调用此接口来获取[[NIMSuperTeam|`超大群`]]列表 */ public getSuperTeams: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetSuperTeamsOpts>>; /** * [🔗 获取群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeam__anchor) * - 开发者可以调用此接口获取群资料 */ public getTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamOpts>>; /** * [🔗 通过群ID及成员账号获取群成员信息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMemberByTeamIdAndAccount__anchor) * - */ public getTeamMemberByTeamIdAndAccount: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMemberByTeamIdAndAccountOpts>>; /** * [🔗 获取群成员的邀请者accid](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMemberInvitorAccid__anchor) * - */ public getTeamMemberInvitorAccid: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMemberInvitorAccidOpts>>; /** * [🔗 获取群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMembers__anchor) * - 如果开发者在[[NIM|`初始化SDK`]]时选择设置了`syncTeamMembers`为`false`, 那么就收不到`onteammembers`回调, 可以调用此方法来获取[[NIMTeamMember|`群成员`]]列表 * - 接受入群邀请之后调用此方法来获取[[NIMTeamMember|`群成员`]]列表 */ public getTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMembersOpts>>; /** * [🔗 查询群组已读、未读账号列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMsgReadAccounts__anchor) * - */ public getTeamMsgReadAccounts: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMsgReadAccountsOpts>>; /** * [🔗 功能名](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeamMsgReads__anchor) * - */ public getTeamMsgReads: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamMsgReadsOpts>>; /** * [🔗 获取群列表](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getTeams__anchor) * - 如果开发者在[[NIM|`初始化SDK`]]的时候设置了`syncTeams`为`false`, 那么就收不到`onteams`回调, 可以调用此接口来获取[[NIMTeam|`群`]]列表 */ public getTeams: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetTeamsOpts>>; /** * [🔗 获取用户名片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getUser__anchor) * - */ public getUser: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetUserOpts>>; /** * [🔗 获取用户名片数组](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#getUsers__anchor) * - 每次最多 150 个 */ public getUsers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMGetUsersOpts>>; /** * [🔗 插入一条本地会话记录](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#insertLocalSession__anchor) * - 如果会话已存在, 那么会返回错误 * - 如果不[[NIM.support|`支持数据库`]], 那么算成功 * - 如果有对应会话的本地历史消息, 那么会更新会话的 `lastMsg` 为最后一条消息 * - 插入成功后, 会触发`onupdatesession`回调 */ public insertLocalSession: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMInsertLocalSessionOpts>>; /** * [🔗 interlace 图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#interlaceImage__anchor) * - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url * - 在网络环境较差时, interlace 后的图片会以从模糊到清晰的方式呈现给用户 */ public interlaceImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMInterlaceImageOpts>>; /** * [🔗 查询消息是否被对方读过了](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#isMsgRemoteRead__anchor) * - 目前只支持`'p2p'`会话 */ public isMsgRemoteRead(msg: NIMMessage): boolean; /** * [🔗 踢当前用户登录的其它端](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#kick__anchor) * - */ public kick: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMKickOpts>>; /** * [🔗 主动退群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#leaveSuperTeam__anchor) * - [[NIM.leaveSuperTeam|`主动退群`]]后, 所有[[NIMSuperTeamMember|`超大群群成员`]]会收到一条类型为[[NIM.leaveSuperTeam|`'leaveSuperTeam'`]]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为退群的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMSuperTeam|`超大群对象`]]。 */ public leaveSuperTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMLeaveSuperTeamOpts>>; /** * [🔗 主动退群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#leaveTeam__anchor) * - [[NIM.leaveSuperTeam|`主动退群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为[[NIM.leaveTeam|`'leaveTeam'`]]的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为退群的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]] */ public leaveTeam: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMLeaveTeamOpts>>; /** * [🔗 登出SDK](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#logout__anchor) * - 在连接正常的情况下,可以调用该方法退出登录,如果您不确定连接是否正常,请使用 [[NIM.connect]] */ public logout(): void; /** * [🔗 加入黑名单/从黑名单移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markInBlacklist__anchor) * - 此接口可以完成以下两个功能, 通过参数`isAdd`来决定实际的功能 * - `isAdd`为`true`时, 会将`account`[[NIM.addToBlacklist|`加入黑名单`]] * - 如果一个用户被加入了黑名单, 那么就不再会收到此用户发送的消息 * - `isAdd`为`false`时, 会将`account`[[NIM.removeFromBlacklist|`从黑名单移除`]] * -如果一个用户被从黑名单移除, 那么会重新收到此用户发送的消息 * - 每个功能SDK都提供了相应的独立接口 */ public markInBlacklist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMarkInBlacklistOpts>>; /** * [🔗 加入静音列表/从静音列表移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markInMutelist__anchor) * - 此接口可以完成以下两个功能, 通过参数`isAdd`来决定实际的功能 * - `isAdd`为`true`时, 会将`account`[[NIM.addToMutelist|`加入静音列表`]] * - `isAdd`为`false`时, 会将`account`[[NIM.removeFromMutelist|`从静音列表移除`]] * - 每个功能SDK都提供了相应的独立接口 */ public markInMutelist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMarkInMutelistOpts>>; /** * [🔗标记消息为已收到](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markMsgRead__anchor) * - 如果没有消息、或者支持数据库、或者设置了自动标记, 那么直接返回 * - TODO: 未知返回结果 */ public markMsgRead<T extends NIMMessage>(msgs: T[]): unknown; /** * [🔗 标记系统通知为已收到](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#markSysMsgRead__anchor) * - SDK 在收到系统通知后会更新系统通知未读数, 开发者需要调用此接口来通知 SDK 将某条系统通知标记为已读状态, 标记后会触发`onupdatesysmsgunread`回调 */ public markSysMsgRead: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMarkSysMsgReadOpts>>; /** * [🔗 合并好友](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeFriends__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的好友列表 * - 合并时按照 `account` 的值去重,按照 `account` 的值正序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeFriends<T extends NIMFriend>(olds: T[], news: T[]): T[]; /** * [🔗 合并登录端](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeLoginPorts__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的登录端列表 * - 合并时按照 [[NIMLoginPort.deviceId]] 的值去重,按照 [[NIMLoginPort.deviceId]] 的值正序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeLoginPorts<T extends NIMLoginPort>(olds: T[], news: T[]): T[]; /** * [🔗 合并消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeMsgs__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的消息列表 * - 合并时按照 [[NIMMessage.idClient]] 的值去重,按照 [[NIMMessage.time]] 的值排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeMsgs<T extends NIMMessage>(olds: T[], news: T[]): T[]; /** * [🔗 合并消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeRelations__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的关系列表 * - 合并时按照 [[NIMRelation.account]] 的值去重,按照 [[NIMRelation.account]] 的值正序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeRelations<T extends NIMRelation>(olds: T[], news: T[]): T[]; /** * [🔗 合并会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeSessions__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的会话列表 * - 合并时按照 [[NIMSession.id]] 的值去重,按照 [[NIMSession.updateTime]] 的值倒序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeSessions<T extends NIMSession>(olds: T[], news: T[]): T[]; /** * [🔗 合并系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeSysMsgs__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的系统通知列表 * - 合并时按照 [[NIMSystemMessage.idServer]] 的值去重,按照 [[NIMSystemMessage.idServer]] 的值倒序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeSysMsgs<T extends NIMSystemMessage>(olds: T[], news: T[]): T[]; /** * [🔗 合并群成员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeTeamMembers__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的群成员列表 * - 合并时按照 [[NIMTeamMember.teamId]] 的值去重,按照 [[NIMTeamMember.teamId]] 的值正序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeTeamMembers<T extends NIMTeamMember>(olds: T[], news: T[]): T[]; /** * [🔗 合并群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeTeams__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的群列表 * - 合并时按照 [[NIMTeam.teamId]] 的值去重,按照 [[NIMTeam.teamId]] 的值正序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeTeams<T extends NIMTeam>(olds: T[], news: T[]): T[]; /** * [🔗 合并名片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#mergeUsers__anchor) * - 此方法不会改变参数的值,而是会返回新的数组,包含合并后的名片列表 * - 合并时按照 [[NIMUser.account]] 的值去重,按照 [[NIMUser.account]] 的值正序排序 * - 此方法内部调用 [[NIMUtils.mergeObjArray]] 来完成实际工作 */ public mergeUsers<T extends NIMUser>(olds: T[], news: T[]): T[]; /** * [🔗 群组禁言](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#muteTeamAll__anchor) * - */ public muteTeamAll: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMMuteTeamAllOpts>>; /** * [🔗 是否需要群消息通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#notifyForNewTeamMsg__anchor) * - */ public notifyForNewTeamMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMNotifyForNewTeamMsgOpts>>; /** * [🔗 修改图片下载的名字](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#packFileDownloadName__anchor) * - */ public packFileDownloadName(opts: { url: string, name: string }): string; /** * [🔗 通过好友申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#passFriendApply__anchor) * - [[NIM.applyFriend|`申请加某个用户为好友`]]后, 对方会收到一条类型为`'applyFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请 * + 如果[[NIM.passFriendApply|`通过好友申请`]], 那么申请方会收到一条类型为`'passFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类群通知消息的`from`字段的值为通过方的帐号, `to`字段的值为申请方的账号 * + 如果[[NIM.rejectFriendApply|`拒绝好友申请`]], 那么申请方会收到一条类型为`'rejectFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为申请方的账号 */ public passFriendApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMPassFriendApplyOpts>>; /** * [🔗 通过入群申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#passTeamApply__anchor) * - 用户可以主动[[NIM.applyTeam|`申请加入高级群`]], 目标群的群主和管理员会收到一条类型为`'applyTeam'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 * + 如果[[NIM.passTeamApply|`通过入群申请`]], 那么该群的所有群成员会收到一条类型为`'passTeamApply'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为通过入群申请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`account`包含了申请方的帐号, `attach`有一个字段`members`的值为被通过申请的群成员列表。 * + 如果[[NIM.rejectTeamApply|`拒绝入群申请`]], 那么申请人会收到一条类型为`'rejectTeamApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]]。 */ public passTeamApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMPassTeamApplyOpts>>; /** * [🔗 预览文件](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#previewFile__anchor) * - 开发者可以预览文件, 支持以下几种场景 * - 通过参数`fileInput`传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 * - 通过参数`blob`传入 Blob 对象 * - 通过参数`dataURL`传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器支持 Blob * - SDK会将文件上传到文件服务器, 然后将拿到的文件对象在`done`回调中传给开发者, 文件对象有以下几种 * - [[NIMImageFile|`图片对象`]] * - [NIMAudio|`音频对象`]] * - [NIMVideo|`视频对象`]] * - [NIMFile|`文件对象`]] * - 开发者在拿到文件对象之后, 可以调用[[NIM.sendFile|`发送文件消息`]]来发送文件消息。 * - 文件大小限制为最大 100M * - 高级浏览器会在上传前就检测文件大小 * - IE8/IE9 会在上传完成后检测文件大小 */ public previewFile: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMPreviewFileOpts>>; /** * [🔗 处理图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#processImage__anchor) * 此方法接收一组图片操作, 按操作顺序依次处理图片, 可选的操作包括: * - [[NIM.qualityImage|`修改图片质量`]] * - [[NIM.interlaceImage|`interlace图片`]] * - [[NIM.rotateImage|`旋转图片`]] * - [[NIM.blurImage|`高斯模糊图片`]] * - [[NIM.cropImage|`裁剪图片`]] * - [[NIM.thumbnailImage|`生成缩略图`]] * - [[NIM.previewFile|`预览文件`]] * - [[NIM.sendFile|`发送文件消息`]] * 每个操作所需的参数请参考上面的各个方法, 除了上面方法列出来的参数之外, 每个操作需要提供操作类型, 分别是 * - `'quality'` * - `'interlace'` * - `'rotate'` * - `'blur'` * - `'crop'` * - `'thumbnail'` */ public processImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMProcessImageOpts>>; /** * [🔗 修改图片质量](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#qualityImage__anchor) * - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url * - 默认图片质量为100, 开发者可以降低图片质量来省流量 */ public qualityImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMQualityImageOpts>>; /** * [🔗 拒绝好友申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectFriendApply__anchor) * - [[NIM.applyFriend|`申请加某个用户为好友`]]后, 对方会收到一条类型为`'applyFriend'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请。 * - 如果[[NIM.passFriendApply|`通过好友申请`]], 那么申请方会收到一条类型为`'passFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类群通知消息的`from`字段的值为通过方的帐号, `to`字段的值为申请方的账号。 * - 如果[[NIM.rejectFriendApply|`拒绝好友申请`]], 那么申请方会收到一条类型为`'rejectFriendApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为申请方的账号。 */ public rejectFriendApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRejectFriendApplyOpts>>; /** * [🔗 拒绝入群申请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectTeamApply__anchor) * - */ public rejectTeamApply: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRejectTeamApplyOpts>>; /** * [🔗 拒绝入群邀请](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rejectTeamInvite__anchor) * - 用户可以主动[[NIM.applyTeam|`申请加入高级群`]], 目标群的群主和管理员会收到一条类型为`'applyTeam'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为申请方的帐号, `to`字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 * - 如果[[NIM.passTeamApply|`通过入群申请`]], 那么该群的所有群成员会收到一条类型为`'passTeamApply'`的[[NIMMessage|`群通知消息`]], 此类群通知消息的`from`字段的值为通过入群申请的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`account`包含了申请方的帐号, `attach`有一个字段`members`的值为被通过申请的群成员列表。 * - 如果[[NIM.rejectTeamApply|`拒绝入群申请`]], 那么申请人会收到一条类型为`'rejectTeamApply'`的[[NIMSystemMessage|`系统通知`]], 此类系统通知的`from`字段的值为拒绝方的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeam|`群`]]。 */ public rejectTeamInvite: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRejectTeamInviteOpts>>; /** * [🔗 从黑名单移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeFromBlacklist__anchor) * - 如果一个用户被从黑名单移除, 那么会重新收到此用户发送的消息 * - SDK内部调用[[NIM.markInBlacklist|`nim.markInBlacklist`]]来完成实际工作 */ public removeFromBlacklist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveFromBlacklistOpts>>; /** * [🔗 从静音列表移除](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeFromMutelist__anchor) * - SDK只负责维护静音列表, 具体要根据静音列表进行的操作由开发者决定 * - SDK内部调用[[NIM.markInMutelist|`NIM.markInMutelist`]]来完成实际工作 */ public removeFromMutelist: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveFromMutelistOpts>>; /** * [🔗 踢人出超大群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeSuperTeamMembers__anchor) * - [[NIM.removeSuperTeamMembers|`踢人出群`]], 所有[[NIMSuperTeamMember|`超大群群成员`]]会收到一条类型为`'removeSuperTeamMembers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为退群的人的帐号, `to`字段的值为对应的群ID;`attach`有一个字段`team`的值为对应的[[NIMSuperTeam|`超大群对象`]],有一个字段accounts的是被踢人的账号数组。 */ public removeSuperTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveSuperTeamMembersOpts>>; /** * [🔗 移除群管理员](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeTeamManagers__anchor) * - [[NIM.removeTeamManagers|`移除群管理员`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'removeTeamManagers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为移除群管理员的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`accounts`的值为被移除的管理员的帐号列表, `attach`有一个字段`members`的值为被移除管理员的群成员列表。 */ public removeTeamManagers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveTeamManagersOpts>>; /** * [🔗 踢人出群](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#removeTeamMembers__anchor) * - [[NIM.removeTeamMembers|`踢人出群`]]后, 所有[[NIMTeamMember|`群成员`]]会收到一条类型为`'removeTeamMembers'`的[[NIMMessage|`群通知消息`]]。此类群通知消息的`from`字段的值为踢人的人的帐号, `to`字段的值为对应的群ID, `attach`有一个字段`team`的值为对应的[[NIMTeamMember|`群对象`]], `attach`有一个字段`accounts`的值为被踢的人的帐号列表。 */ public removeTeamMembers: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRemoveTeamMembersOpts>>; /** * [🔗 重置当前会话](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#resetCurrSession__anchor) * - 重置当前会话后, 所有会话在收到消息之后会更新未读数 */ public resetCurrSession(): unknown; /** * [🔗 重置某个会话的未读数](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#resetSessionUnread__anchor) * - 如果是已经存在的会话记录, 会将此会话未读数置为 0, 那么会收到`onupdatesession`回调 * - 之后此会话在收到消息之后依然会更新未读数 */ public resetSessionUnread(sessionId: string): unknown; /** * [🔗 旋转图片](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#rotateImage__anchor) * - 只支持通过[[NIM.previewFile|`预览文件`]]或[[NIM.sendFile|`发送文件消息`]]拿到的图片 url, 或者经过其他图片操作后拿到的图片 url */ public rotateImage: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMRotateImageOpts>>; /** * [🔗 发送自定义消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendCustomMsg__anchor) * - 自定义消息是[[NIMMessage.scene|`消息类型`]]的一种 * - 下面的代码用自定义消息实现了`石头剪刀布`游戏 */ public sendCustomMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSendCustomMsgOpts>>; /** * [🔗 发送自定义系统通知](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendCustomSysMsg__anchor) * - 开发者可以向其他用户或群发送自定义通知 * - 自定义系统通知和自定义消息的区别如下 * - 自定义消息属于[[NIMMessage|`消息`]], 会存储在云信的消息数据库中, 需要跟其他[[NIMMessage|`消息`]]一同展现给用户。 * - 自定义系统通知属于[[NIMSystemMessage|`系统通知`]], 用于第三方通知自己, 不会存储在云信的数据库中, SDK不会解析这些通知, SDK仅仅负责传递这些通知。 */ public sendCustomSysMsg: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSendCustomSysMsgOpts>>; /** * [🔗 发送文件消息](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/NIM.html#sendFile__anchor) * - 文件消息是[[NIMMessage.type|`消息类型`]]的一种 * - 开发者可以直接发送文件消息 * + 支持以下几种场景 * - 通过参数`fileInput`传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 * - 通过参数`blob`传入 Blob 对象 * - 通过参数`dataURL`传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器���持 Blob * + SDK会先将文件上传到文件服务器, 然后把拿到的文件对象在`uploaddone`回调中传给用户, 然后将其拼装成文件消息发送出去。 * - 开发者也可以先[[NIM.previewFile|`预览文件`]]来获取文件对象, 然后调用此接口发送文件消息。 * + 通过参数`file`传入文件 * - 直接发送文件消息的话会在`beforesend`回调里面传入SDK生成的`idClient`, 如果先预览文件再发送, 那么此接口会直接返回idClient * - 参数`type`指定了要发送的文件类型, 包括图片、音频、视频和普通文件, 对应的值分别为`'image'`、`'audio'`、`'video'`和`'file'`, 不传默认为`'file'`。 * - 图片、音频、视频和普通文件的区别在于具体的文件信息不一样,具体字段请参考 * + [图片对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/Image.html) * + [音频对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/Audio.html) * + [视频对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/Video.html) * + [文件对象](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/File.html) * + `机器人对象` * - 文件大小限制为最大100M * + 高级浏览器会在上传前就检测文件大小 * + IE8和IE9会在上传完成后检测文件大小 */ public sendFile: NIMAsyncFuncPromiseify<NIMAsyncFunc<AsyncFuncOpts.NIMSendFile