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 };
|