456 lines
13 KiB
TypeScript
456 lines
13 KiB
TypeScript
|
import { ChatSDK } from '@tencentcloud/chat';
|
|||
|
|
|||
|
/**
|
|||
|
* TUILogin login 参数信息(未说明的参数均可忽略)
|
|||
|
* @interface LoginParams
|
|||
|
* @property {number} SDKAppID 云通信应用的 SDKAppID
|
|||
|
* @property {string} userID 用户 ID
|
|||
|
* @property {string} userSig 用户登录即时通信 IM 的密码,其本质是对 UserID 等信息加密后得到的密文。<br/>具体生成方法请参见{@link https://cloud.tencent.com/document/product/269/32688 生成 UserSig}
|
|||
|
* @property {any} [TIMPush] uniapp 推送插件 默认 undefined
|
|||
|
* @property {any} [pushConfig] uniapp 推送插件配置信息 默认 undefined
|
|||
|
* @property {any} [TUIOfflinePush] uniapp 离线推送插件 默认 undefined(已废弃,推荐使用 TIMPush)
|
|||
|
* @property {any} [offlinePushConfig] uniapp 离线推送插件配置信息 默认 undefined(已废弃,推荐使用 TIMPush 对应的 pushConfig 参数)
|
|||
|
* @property {boolean} [useUploadPlugin] 是否使用上传插件 默认 false
|
|||
|
* @property {string} [fileUploadProxy] 图片、视频、文件上传代理地址
|
|||
|
* @property {string} [fileDownloadProxy] 图片、视频、文件下载代理地址
|
|||
|
* @property {string} [proxyServer] 设置 IM 服务代理服务
|
|||
|
* @property {string} [framework] 单前使用的框架 vue2 或 vue3,请务必准确填写,用于分析 badcase
|
|||
|
*/
|
|||
|
interface LoginParams {
|
|||
|
SDKAppID: number;
|
|||
|
userID: string;
|
|||
|
userSig: string;
|
|||
|
TIMPush?: any;
|
|||
|
pushConfig?: any;
|
|||
|
TUIOfflinePush?: any;
|
|||
|
offlinePushConfig?: any;
|
|||
|
useUploadPlugin?: boolean;
|
|||
|
useProfanityFilterPlugin?: boolean;
|
|||
|
unlimitedAVChatRoom?: boolean;
|
|||
|
scene?: string;
|
|||
|
fileUploadProxy?: string;
|
|||
|
fileDownloadProxy?: string;
|
|||
|
proxyServer?: string;
|
|||
|
devMode?: boolean;
|
|||
|
framework?: string;
|
|||
|
}
|
|||
|
type func = (...args: any[]) => any;
|
|||
|
/**
|
|||
|
* 调用服务的参数信息
|
|||
|
* @interface CallServiceParams
|
|||
|
* @property {string} serviceName 服务名
|
|||
|
* @property {string} method 调用的方法名
|
|||
|
* @property {any} params 业务参数
|
|||
|
* @property {func} [callback] 回调函数
|
|||
|
*/
|
|||
|
interface CallServiceParams {
|
|||
|
serviceName: string;
|
|||
|
method: string;
|
|||
|
params: Record<string, any>;
|
|||
|
callback?: func;
|
|||
|
}
|
|||
|
/**
|
|||
|
* 扩展配置信息
|
|||
|
* @interface ExtensionInfo
|
|||
|
* @property {number} weight 扩展组件权重,用于排序,weight 值越大显示位置越靠前
|
|||
|
* @property {string} text 扩展组件显示的名称
|
|||
|
* @property {string} icon 扩展组件图标 url
|
|||
|
* @property {object} data 自定义扩展信息
|
|||
|
* @property {object} listener 回调函数
|
|||
|
* @property {func} [listener.onClicked] 页面点击回调
|
|||
|
* @property {func} [listener.onLongPressed] 页面长按回调
|
|||
|
* @property {func} [listener.onTouched] 屏幕触摸回调
|
|||
|
* @property {func} [listener.onSwiped] 页面左右滑动回调
|
|||
|
*/
|
|||
|
interface ExtensionInfo {
|
|||
|
weight: number;
|
|||
|
text: string;
|
|||
|
icon: string;
|
|||
|
data: Record<string, any>;
|
|||
|
listener: {
|
|||
|
onClicked?: func;
|
|||
|
onLongPressed?: func;
|
|||
|
onTouched?: func;
|
|||
|
onSwiped?: func;
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
interface ITUIService {
|
|||
|
onCall(method: string, params: object, callback?: func): void;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @interface TUICore
|
|||
|
*/
|
|||
|
interface ITUICore {
|
|||
|
/**
|
|||
|
* 注册服务
|
|||
|
* @function
|
|||
|
* @param {string} serviceName 服务名
|
|||
|
* @param {ITUIService} service 服务实例
|
|||
|
* @example
|
|||
|
* TUICore.registerService(TUIConstants.TUICall.SERVICE.NAME, this);
|
|||
|
*/
|
|||
|
registerService(serviceName: string, service: any): void;
|
|||
|
/**
|
|||
|
* 反注册服务
|
|||
|
* @function
|
|||
|
* @param {string} serviceName 服务名
|
|||
|
* @example
|
|||
|
* TUICore.unregisterService(TUIConstants.TUICall.SERVICE.NAME);
|
|||
|
*/
|
|||
|
unregisterService(serviceName: string): void;
|
|||
|
/**
|
|||
|
* 获取服务
|
|||
|
* @function
|
|||
|
* @param {string} serviceName 服务名
|
|||
|
* @example
|
|||
|
* TUICore.getService(TUIConstants.TUICall.SERVICE.NAME);
|
|||
|
*/
|
|||
|
getService(serviceName: string): ITUIService;
|
|||
|
/**
|
|||
|
* 调用服务
|
|||
|
* @function
|
|||
|
* @param {CallServiceParams} options 调用服务的参数
|
|||
|
* @example
|
|||
|
* TUICore.callService({
|
|||
|
* serviceName: TUIConstants.TUICall.SERVICE.NAME,
|
|||
|
* method: TUIConstants.TUICall.SERVICE.METHOD.CALL,
|
|||
|
* params: {
|
|||
|
* callType: 1,
|
|||
|
* mediaType: 2
|
|||
|
* },
|
|||
|
* callback: (result) => {
|
|||
|
* // todo
|
|||
|
* },
|
|||
|
* });
|
|||
|
*/
|
|||
|
callService(options: CallServiceParams): void;
|
|||
|
/**
|
|||
|
* 注册扩展组件
|
|||
|
* @function
|
|||
|
* @param {string} extensionID 扩展点 ID
|
|||
|
* @param {ITUIExtension} extension
|
|||
|
* @example
|
|||
|
* TUICore.registerExtension(TUIConstants.TUIChat.EXTENSION.INPUT_TOOLBAR, this);
|
|||
|
*/
|
|||
|
registerExtension(extensionID: string, extension: any): void;
|
|||
|
/**
|
|||
|
* 反注册扩展组件
|
|||
|
* @function
|
|||
|
* @param {string} extensionID 扩展点 ID
|
|||
|
* @param {ITUIExtension} extension
|
|||
|
* @example
|
|||
|
* TUICore.unregisterExtension(TUIConstants.TUIChat.EXTENSION.INPUT_TOOLBAR, this);
|
|||
|
*/
|
|||
|
unregisterExtension(extensionID: string, extension: any): void;
|
|||
|
/**
|
|||
|
* 获取注册扩展组件列表
|
|||
|
* @function
|
|||
|
* @param {string} extensionID 扩展点 ID
|
|||
|
* @param {object} [params] 扩展点参数
|
|||
|
* @example
|
|||
|
* TUICore.getExtension(TUIConstants.TUIChat.EXTENSION.INPUT_TOOLBAR, { filterVoice: true });
|
|||
|
*/
|
|||
|
getExtensionList(extensionID: string, params?: object): Array<ExtensionInfo>;
|
|||
|
/**
|
|||
|
* 注册广播监听
|
|||
|
* @function
|
|||
|
* @param {string} eventName 事件名
|
|||
|
* @param {string} subKey 事件的具体操作
|
|||
|
* @param {ITUINotification} notification 事件监听者
|
|||
|
* @example
|
|||
|
* TUICore.registerEvent(TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED, this);
|
|||
|
*/
|
|||
|
registerEvent(eventName: string, subKey: string, notification: any): void;
|
|||
|
/**
|
|||
|
* 反注册广播监听
|
|||
|
* @function
|
|||
|
* @param {string} eventName 事件名
|
|||
|
* @param {string} subKey 事件的具体操作
|
|||
|
* @param {ITUINotification} notification 事件监听者
|
|||
|
* @example
|
|||
|
* TUICore.unregisterEvent(TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED, this);
|
|||
|
*/
|
|||
|
unregisterEvent(eventName: string, subKey: string, notification: any): void;
|
|||
|
/**
|
|||
|
* 广播消息通知
|
|||
|
* @function
|
|||
|
* @param {string} eventName 事件名
|
|||
|
* @param {string} subKey 事件的具体操作
|
|||
|
* @param {object} [params] 业务数据
|
|||
|
* @example
|
|||
|
* TUICore.notifyEvent(TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED, TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS);
|
|||
|
*/
|
|||
|
notifyEvent(eventName: string, subKey: string, params?: object): void;
|
|||
|
}
|
|||
|
|
|||
|
interface GetContextResult {
|
|||
|
chat: ChatSDK;
|
|||
|
SDKAppID: number;
|
|||
|
userID: string;
|
|||
|
userSig: string;
|
|||
|
}
|
|||
|
/**
|
|||
|
* @interface TUILogin
|
|||
|
*/
|
|||
|
interface ITUILogin {
|
|||
|
/**
|
|||
|
* 登录 Chat SDK
|
|||
|
* @function
|
|||
|
* @param {LoginParams} options 登录参数
|
|||
|
* @example
|
|||
|
* TUILogin.login({
|
|||
|
* SDKAppID: xxx,
|
|||
|
* userID: 'xxx',
|
|||
|
* userSig: 'xxx',
|
|||
|
* useUploadPlugin: true, // 使用文件上传插件
|
|||
|
* });
|
|||
|
*/
|
|||
|
login(options: LoginParams): Promise<any>;
|
|||
|
/**
|
|||
|
* 登出 Chat SDK
|
|||
|
* @function
|
|||
|
* @example
|
|||
|
* let promise = TUILogin.logout();
|
|||
|
* promise.then(() => {
|
|||
|
* // 登出成功后进行相关业务逻辑处理
|
|||
|
* })
|
|||
|
*/
|
|||
|
logout(): Promise<any>;
|
|||
|
/**
|
|||
|
* 销毁 Chat SDK 实例,SDK 会先 logout,然后断开 WebSocket 长连接,并释放资源。
|
|||
|
* @function
|
|||
|
* @example
|
|||
|
* let promise = TUILogin.destroy();
|
|||
|
*/
|
|||
|
destroy(): Promise<any>;
|
|||
|
/**
|
|||
|
* 设置 Chat SDK 日志级别
|
|||
|
* @function
|
|||
|
* @param {number} level 日志级别
|
|||
|
* - 0 普通级别,日志量较多,接入时建议使用
|
|||
|
* - 1 release级别,SDK 输出关键信息,生产环境时建议使用
|
|||
|
* - 2 告警级别,SDK 只输出告警和错误级别的日志
|
|||
|
* - 3 错误级别,SDK 只输出错误级别的日志
|
|||
|
* - 4 无日志级别,SDK 将不打印任何日志
|
|||
|
* @example
|
|||
|
* TUILogin.setLogLevel(0)
|
|||
|
*/
|
|||
|
setLogLevel(level: number): void;
|
|||
|
/**
|
|||
|
* 获取 TUILogin 当前上下文信息
|
|||
|
* @function
|
|||
|
* @example
|
|||
|
* const { chat, SDKAppID, userID, userSig } = TUILogin.getContext();
|
|||
|
* // chat - Chat SDK 实例
|
|||
|
* // SDKAppID - 即时通信应用 AppID
|
|||
|
* // userID - 用户 ID
|
|||
|
* // userSig - 用户登录前面
|
|||
|
*/
|
|||
|
getContext(): GetContextResult;
|
|||
|
}
|
|||
|
|
|||
|
declare const TUIConstants: {
|
|||
|
TUILogin: {
|
|||
|
EVENT: {
|
|||
|
LOGIN_STATE_CHANGED: string;
|
|||
|
};
|
|||
|
EVENT_SUB_KEY: {
|
|||
|
USER_LOGIN_SUCCESS: string;
|
|||
|
USER_LOGOUT_SUCCESS: string;
|
|||
|
USER_KICKED_OFFLINE: string;
|
|||
|
USER_SIG_EXPIRED: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUIConversation: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
CREATE_CONVERSATION: string;
|
|||
|
HIDE_CONVERSATION_HEADER: string;
|
|||
|
};
|
|||
|
};
|
|||
|
EXTENSION: {
|
|||
|
CONV_POP_MENU: {
|
|||
|
EXT_ID: string;
|
|||
|
};
|
|||
|
CONV_GROUP: {
|
|||
|
EXT_ID: string;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
TUIChat: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
UPDATE_MESSAGE_LIST: string;
|
|||
|
CLOSE_MESSAGE_POP_MENU: string;
|
|||
|
SEND_CUSTOM_MESSAGE: string;
|
|||
|
SEND_TEXT_MESSAGE: string;
|
|||
|
SET_CHAT_TYPE: string;
|
|||
|
UPDATE_MESSAGE_INFO: string;
|
|||
|
};
|
|||
|
};
|
|||
|
EXTENSION: {
|
|||
|
INPUT_MORE: {
|
|||
|
EXT_ID: string;
|
|||
|
};
|
|||
|
MSG_POP_MENU: {
|
|||
|
EXT_ID: string;
|
|||
|
};
|
|||
|
CHAT_HEADER: {
|
|||
|
EXT_ID: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TYPE: {
|
|||
|
C2C: string;
|
|||
|
GROUP: string;
|
|||
|
CUSTOMER_SERVICE: string;
|
|||
|
ROOM: string;
|
|||
|
};
|
|||
|
EVENT: {
|
|||
|
CHAT_STATE_CHANGED: string;
|
|||
|
CHAT_TYPE_CHANGED: string;
|
|||
|
};
|
|||
|
EVENT_SUB_KEY: {
|
|||
|
CHAT_OPENED: string;
|
|||
|
CHANGE_SUCCESS: string;
|
|||
|
};
|
|||
|
FEATURE: {
|
|||
|
DownloadFile: string;
|
|||
|
CopyMessage: string;
|
|||
|
DeleteMessage: string;
|
|||
|
RevokeMessage: string;
|
|||
|
QuoteMessage: string;
|
|||
|
ForwardMessage: string;
|
|||
|
TranslateMessage: string;
|
|||
|
VoiceToText: string;
|
|||
|
MultiSelection: string;
|
|||
|
EmojiReaction: string;
|
|||
|
InputEmoji: string;
|
|||
|
InputStickers: string;
|
|||
|
InputImage: string;
|
|||
|
InputVoice: string;
|
|||
|
InputVideo: string;
|
|||
|
InputFile: string;
|
|||
|
InputEvaluation: string;
|
|||
|
InputQuickReplies: string;
|
|||
|
InputMention: string;
|
|||
|
MessageSearch: string;
|
|||
|
ReadStatus: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUIGroup: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
CREATE_GROUP: string;
|
|||
|
OPEN_GROUP_MANAGEMENT: string;
|
|||
|
SELECT_GROUP_MEMBER: string;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
TUIContact: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
SELECT_FRIEND: string;
|
|||
|
};
|
|||
|
};
|
|||
|
EXTENSION: {
|
|||
|
CONTACT_LIST: {
|
|||
|
EXT_ID: string;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
TUISearch: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
SEARCH_GROUP: string;
|
|||
|
SEARCH_USER: string;
|
|||
|
SEARCH_FRIEND: string;
|
|||
|
SEARCH_GROUP_MEMBER: string;
|
|||
|
};
|
|||
|
};
|
|||
|
EXTENSION: {
|
|||
|
SEARCH_MORE: {
|
|||
|
EXT_ID: string;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
TUICalling: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
START_CALL: string;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
TUIRoom: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUIEmojiPlugin: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
CLOSE_EMOJI_DETAIL: string;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
TUITranslate: {
|
|||
|
EVENT: {
|
|||
|
LANGUAGE_CHANGED: string;
|
|||
|
};
|
|||
|
EVENT_SUB_KEY: {
|
|||
|
CHANGE_SUCCESS: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUITranslatePlugin: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUIVoiceToTextPlugin: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUICustomerServicePlugin: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
METHOD: {
|
|||
|
ACTIVE_CONVERSATION: string;
|
|||
|
FILTER_MESSAGE: string;
|
|||
|
};
|
|||
|
};
|
|||
|
EXTENSION: {};
|
|||
|
};
|
|||
|
TUIPushPlugin: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUIChatbotPlugin: {
|
|||
|
SERVICE: {
|
|||
|
NAME: string;
|
|||
|
};
|
|||
|
};
|
|||
|
TUITheme: {
|
|||
|
EVENT: {
|
|||
|
THEME_CHANGED: string;
|
|||
|
};
|
|||
|
EVENT_SUB_KEY: {
|
|||
|
CHANGE_SUCCESS: string;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
|
|||
|
declare const tuiCore: ITUICore;
|
|||
|
declare const tuiLogin: ITUILogin;
|
|||
|
|
|||
|
export { CallServiceParams, ExtensionInfo, LoginParams, TUIConstants, tuiCore as TUICore, tuiLogin as TUILogin, tuiCore as default, func };
|