UNPKG

@22g/netease-im-web-sdk

Version:

typescript netease-im-web-sdk

125 lines (117 loc) 4.29 kB
import { NIMMessage, NIMSceneType } from './Message'; import { NIMError } from './Basic'; /** * 系统通知类型 * - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/SystemMessage.html#.type) */ export const enum NIMSystemMessageType { addFriend = 'addFriend', applyFriend = 'applyFriend', passFriendApply = 'passFriendApply', rejectFriendApply = 'rejectFriendApply', deleteFriend = 'deleteFriend', teamInvite = 'teamInvite', rejectTeamInvite = 'rejectTeamInvite', applyTeam = 'applyTeam', rejectTeamApply = 'rejectTeamApply', deleteMsg = 'deleteMsg', custom = 'custom', } /** * 系统通知的种类 * - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/SystemMessage.html#.category) */ export const enum NIMSystemMessageCategory { team = 'team', friend = 'friend', } /** * 系统通知的状态 * - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/SystemMessage.html#.state) */ export const enum NIMSystemMessageState { /** 未处理状态 */ init = 'init', /** 已通过 */ passed = 'passed', /** 已拒绝 */ rejected = 'rejected', /** 错误 */ error = 'error', } /** * 系统通知 * - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/SystemMessage.html) * - 不同类型的系统通知结构都有一些差异!! */ export interface NIMSystemMessage { /** 时间戳(ms) */ time: number; /** 系统通知类型 */ type: NIMSystemMessageType; /** 系统通知的来源, 账号或者群ID */ from: string; /** 系统通知的目标, 账号或者群ID */ to: string; /** 内建系统通知的 idServer */ idServer: string; /** 内建系统通知是否已读 */ read?: boolean; /** 内建系统通知的种类 */ category?: NIMSystemMessageCategory; /** 内建系统通知的state */ state?: NIMSystemMessageState; error?: NIMError; /** * 内建系统通知的本地自定义扩展字段 * - 在支持数据库时可以调用更新本地系统通知来更新此字段, 此字段只会被更新到本地数据库, 不会被更新到服务器上 */ localCustom?: string; /** 内建系统通知的附言 */ ps?: string; /** 内建系统通知的附加信息, 参考系统通知类型来查看不同类型的系统通知对应的附加信息 */ attach?: { /** 附加消息的扩展字段, 可能没有 */ custom?: string; }; /** 自定义系系统通知的场景, 参考消息场景 */ scene?: NIMSceneType; /** 自定义系统通知的内容 */ content?: string; /** 是否需要推送 */ isPushable?: boolean; /** 自定义系统通知的推送文案, 仅对接收方为iOS设备有效 */ apnsText?: string; /** * 定义系统通知的推送属性 * - 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 */ pushPayload?: string; /** 是否需要推送昵称 */ needPushNick: boolean; /** * 自定义系统通知是否只发送给在线用户 * - `true` 时只发送给在线用户, 适合发送即时通知, 比如正在输入 * - `false` 时假如目标用户或群不在线, 会在其上线后推送过去。 * - 该参数只对点对点自定义系统通知有效, 对群自定义系统通知无效, 群自定义系统通知只会发给在线的群成员, 不会存离线。 */ sendToOnlineUsersOnly?: boolean; /** 自定义系统通知是否抄送 */ cc?: boolean; } /** 对方撤回消息的系统通知 */ export interface NIMSystemMessageDeleteMsg extends NIMSystemMessage { type: NIMSystemMessageType.deleteMsg; /** 删除消息的 IdClient */ deletedIdClient: string; /** 删除消息的 idServer */ deletedIdServer: string; /** 删除消息的时间 */ deletedMsgTime: number; /** 删除消息的对方名 */ deletedMsgFromNick: string; /** 被删除消息的部分字段 */ msg: Pick<NIMMessage, 'scene' | 'from' | 'to' | 'idClient' | 'idServer' | 'time' | 'fromNick' | 'target' | 'sessionId' | 'flow'>; /** 未知用途 */ opeAccount: string; }