coolink-ts
Version:
Coocaa Coolink APP JavaScript library base on Thresh-lib.
233 lines (210 loc) • 6.29 kB
text/typescript
import Bridge from '../manager/BridgeManager'
import { BridgeParams } from '../types/type'
import {
CoolinkRetCode,
CoolinkInitFloatWinParams,
CoolinkRegisterMessageReceiverParams,
CoolinkIsMpForegroundRet ,
CoolinkRegisterMoreInfoParams,
} from './type'
import RenderManager from '../../src/manager/RenderManager'
import {PageInfo} from '../../src/types/type'
import mpWeb from './MpWeb';
class NativeUIModule {
private static instance: NativeUIModule;
public static getModule(): NativeUIModule {
if (this.instance == null) {
this.instance = new NativeUIModule()
}
return NativeUIModule.instance
}
public startPay(orderParams: string) : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'startPay',
params: {
orderParams
}
};
return mpWeb.callNative(bridgeParams);
}
public alterConnect() : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'alterConnect',
params: {
}
};
return mpWeb.callNative(bridgeParams);
}
public captureScreen() : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'captureScreen',
params: {
}
};
return mpWeb.callNative(bridgeParams);
}
public startSpeech() : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'startSpeech',
params: {
}
};
return mpWeb.callNative(bridgeParams);
}
public stopSpeech() : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'stopSpeech',
params: {
}
};
return mpWeb.callNative(bridgeParams);
}
public notifyCurrPageShow(pageName: string = '') : Promise<CoolinkRetCode> {
let name;
if (pageName == '') {
let currPage = RenderManager.currentPage as PageInfo;
name = currPage.pageName;
} else {
name = pageName;
}
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'notifyCurrPageShow',
params: {
pageName: name
}
};
return mpWeb.callNative(bridgeParams);
}
public notifyCurrTheme(theme: string) : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'notifyCurrTheme',
params: {
theme
}
};
return mpWeb.callNative(bridgeParams);
}
public showNeedHighVerDialog() : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'showNeedHighVerDialog',
params: {
}
};
return mpWeb.callNative(bridgeParams);
}
public setFloatWinDisplay(show: boolean) : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'setFloatWinDisplay',
params: {
show
}
};
return mpWeb.callNative(bridgeParams);
}
public initFloatWin(obj: CoolinkInitFloatWinParams) : void {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'initFloatWin',
params: {
...obj,
methodName: 'onTapFloatWin',
}
};
mpWeb.callNativeWithPersistentCallBack(bridgeParams, 'onTapFloatWin', obj.callback);
}
public registerCloseBtnPress(obj: CoolinkRegisterMessageReceiverParams) : void {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'registerCloseBtnPress',
params: {
miniAppCode: obj.miniAppCode,
methodName: 'onCloseBtnPress',
}
};
mpWeb.callNativeWithPersistentCallBack(bridgeParams, 'onCloseBtnPress', obj.callback);
}
public showAppletWin(miniAppCode: string) : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'showAppletWin',
params: {
miniAppCode
}
};
return mpWeb.callNative(bridgeParams);
}
public showConnectDeviceDialog () : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'showConnectDeviceDialog',
params: {
}
};
return mpWeb.callNative(bridgeParams);
}
public isMpForeground(miniAppCode: string) : Promise<CoolinkIsMpForegroundRet> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'isMpForeground',
params: {
miniAppCode: miniAppCode
}
};
return mpWeb.callNative(bridgeParams);
}
public showNotification (miniAppCode: string, text: string, title: string) : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'showNotification',
params: {
miniAppCode: miniAppCode,
text: text,
title: title ? title : ''
}
};
return mpWeb.callNative(bridgeParams);
}
public registerLifecycleChanged(obj: CoolinkRegisterMessageReceiverParams) : void {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'registerLifecycleChanged',
params: {
miniAppCode: obj.miniAppCode,
methodName: 'onLifecycleChanged',
}
};
mpWeb.callNativeWithPersistentCallBack(bridgeParams, 'onLifecycleChanged', obj.callback);
}
public registerMoreInfo(obj: CoolinkRegisterMoreInfoParams) : void {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'registerMoreInfo',
params: {
miniAppCode: obj.miniAppCode,
moreIcon: obj.moreIcon,
methodName: 'onMoreInfo',
}
};
mpWeb.callNativeWithPersistentCallBack(bridgeParams, 'onMoreInfo', obj.callback);
}
public invokeRemoteController (remoteType : number) : Promise<CoolinkRetCode> {
let bridgeParams : BridgeParams = {
module: 'nativeui',
method: 'invokeRemoteController',
params: {
remoteType
}
};
return mpWeb.callNative(bridgeParams);
}
}
export default NativeUIModule;