UNPKG

node-nim

Version:

NetEase IM nodejs wrapper based on NetEase IM C++ SDK

109 lines (108 loc) 4.98 kB
import { NIMResCode } from './client_def'; import { BoolStatus, NIMMessageFeature } from './msglog_def'; import { SendMessageArc } from './talk_def'; /** @enum NIMSysMsgStatus 系统消息状态 */ export declare enum NIMSysMsgStatus { /** 默认,未读 */ kNIMSysMsgStatusNone = 0, /** 收到消息,通过 */ kNIMSysMsgStatusPass = 1, /** 收到消息,拒绝 */ kNIMSysMsgStatusDecline = 2, /** 收到消息,已读 */ kNIMSysMsgStatusRead = 3, /** 已删 */ kNIMSysMsgStatusDeleted = 4, /** 已失效 */ kNIMSysMsgStatusInvalid = 5 } /** @enum NIMSysMsgType 系统消息内容类型 */ export declare enum NIMSysMsgType { /** 申请入群 */ kNIMSysMsgTypeTeamApply = 0, /** 拒绝入群申请 */ kNIMSysMsgTypeTeamReject = 1, /** 邀请进群 kNIMSysMsgKeyAttach : {"team_info":team_info, "attach" : ""} attach为可选字段,作为应用自定义扩展字段,解析前需要判断有没有这个字段 */ kNIMSysMsgTypeTeamInvite = 2, /** 拒绝邀请 */ kNIMSysMsgTypeTeamInviteReject = 3, /** 加好友, kNIMSysMsgKeyAttach: {"vt":verify_type} */ kNIMSysMsgTypeFriendAdd = 5, /** 删除好友 */ kNIMSysMsgTypeFriendDel = 6, /** 点对点透传消息(透传消息的内容放到kNIMSysMsgKeyAttach),SDK对该类消息不计入未读数, 即使kNIMSysMsgKeyPushNeedBadge为1 */ kNIMSysMsgTypeCustomP2PMsg = 100, /** 群透传消息(透传消息的内容放到kNIMSysMsgKeyAttach),SDK对该类消息不计入未读数, 即使kNIMSysMsgKeyPushNeedBadge为1 */ kNIMSysMsgTypeCustomTeamMsg = 101, /** 超大群透传消息(透传消息的内容放到kNIMSysMsgKeyAttach),SDK对该类消息不计入未读数, 即使kNIMSysMsgKeyPushNeedBadge为1 */ kNIMSysMsgTypeCustomSuperTeamMsg = 103, /** 未知类型,本地使用,发送时勿使用,作为默认 */ kNIMSysMsgTypeUnknown = 1000 } export interface SysMessage { /** 通知时间戳(毫秒) */ timetag_?: number; /** 通知类型 */ type_?: NIMSysMsgType; /** 接收者ID */ receiver_accid_?: string; /** 发送者ID */ sender_accid_?: string; /** 只读,SDK不转发该字段 */ content_?: string; /** 通知附件 */ attach_?: string; /** 通知ID */ id_?: string; /** 通知状态 */ status_?: NIMSysMsgStatus; /** 消息属性设置 */ msg_setting_?: SysMessageSetting; /** 通知错误码 */ rescode_?: NIMResCode; /** 通知属性 */ feature_?: NIMMessageFeature; /** 总计的通知未读数 */ total_unread_count_?: number; /** 通知ID(客户端) */ client_msg_id_?: string; /** v8.2.0 第三方回调返回的自定义字段 */ callbac_ext_?: string; } export interface SysMessageSetting { /** 是否需要推送 */ need_push_?: BoolStatus; /** 是否要做消息计数 */ push_need_badge_?: BoolStatus; /** 需要推送昵称 */ push_need_prefix_?: BoolStatus; /** 是否支持离线消息 */ need_offline_?: BoolStatus; /** 第三方自定义的推送属性,长度2048 */ push_payload_?: object; /** 自定义推送文案,长度限制200字节 */ push_content_?: string; /** (功能暂时不开放)是否需要过易盾反垃圾 */ anti_spam_enable_?: BoolStatus; /** (功能暂时不开放)(可选)开发者自定义的反垃圾字段 */ anti_spam_content_?: string; /** (可选) 指向自定义抄送的配置 */ env_config_?: string; } export type SysmsgCallback = (result: SysMessage) => void; export type SendCustomSysmsgCallback = (result: SendMessageArc) => void; export type NotifySingleSysmsgCallback = (res_code: NIMResCode, msg_id: number, unread_count: number) => void; export type NotifySysmsgResCallback = (res_code: NIMResCode, unread_count: number) => void; export type QuerySysmsgCallback = (count: number, unread_count: number, result: Array<SysMessage>) => void; export interface NIMSysMsgAPI { InitEventHandlers(): void; SendCustomNotificationMsg(msg: SysMessage): void; QueryMsgAsync(limit_count: number, last_time: number, cb: QuerySysmsgCallback | null, jsonExtension: string): boolean; QueryUnreadCount(cb: NotifySysmsgResCallback | null, jsonExtension: string): void; SetStatusAsync(msg_id: string, status: NIMSysMsgStatus, cb: NotifySingleSysmsgCallback | null, jsonExtension: string): boolean; ReadAllAsync(cb: NotifySysmsgResCallback | null, jsonExtension: string): void; DeleteAsync(msg_id: string, cb: NotifySingleSysmsgCallback | null, jsonExtension: string): boolean; DeleteAllAsync(cb: NotifySysmsgResCallback | null, jsonExtension: string): boolean; SetStatusByTypeAsync(type: NIMSysMsgType, status: NIMSysMsgStatus, cb: NotifySysmsgResCallback | null, jsonExtension: string): boolean; DeleteByTypeAsync(type: NIMSysMsgType, cb: NotifySysmsgResCallback | null, jsonExtension: string): boolean; }