UNPKG

coolink-ts

Version:

Coocaa Coolink APP JavaScript library base on Thresh-lib.

233 lines (210 loc) 6.29 kB
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;