UNPKG

coolink-ts

Version:

Coocaa Coolink APP JavaScript library base on Thresh-lib.

164 lines (147 loc) 4.45 kB
import Bridge from '../manager/BridgeManager' import { BridgeParams } from '../types/type' import cooInfo from '../shared/cooInfo' import { CoolinkRetCode, CoolinkRetConnectId, CoolinkRetIsConnected, CoolinkRetDeviceList, CoolinkRetRemoteDevice, CoolinkSendMessageParams, CoolinkRegisterMessageReceiverParams, CoolinkStartActionParams, CoolinkGetRemoteAppStateParams, CoolinkRetState, CoolinkCommonReceiverParams, CoolinkRetHttpHostMapping, } from './type' import mpWeb from './MpWeb'; class ProtocolModule { private static instance: ProtocolModule; public static msgcallback: Function = null; public static getModule(): ProtocolModule { if (this.instance == null) { this.instance = new ProtocolModule() } return ProtocolModule.instance } public getConnectId() : Promise<CoolinkRetConnectId> { let methodName: string; if ((cooInfo?.infos?.systemInfo?.os.indexOf('android') >= 0)) { methodName = 'getConnectedId'; } else { methodName = 'getConnectId'; } // let bridgeParams : BridgeParams = { module: 'protocol', method: methodName, params: { } }; return mpWeb.callNative(bridgeParams); } public isConnected() : Promise<CoolinkRetIsConnected> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'isConnected', params: { } }; return mpWeb.callNative(bridgeParams); } public getDeviceList() : Promise<CoolinkRetDeviceList> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'getDeviceList', params: { } }; return mpWeb.callNative(bridgeParams); } public getRemoteDeviceInfo() : Promise<CoolinkRetRemoteDevice> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'getRemoteDeviceInfo', params: { } }; return mpWeb.callNative(bridgeParams); } public sendMessage(obj: CoolinkSendMessageParams) : Promise<CoolinkRetCode> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'sendMessage', params: { ...obj } }; return mpWeb.callNative(bridgeParams); } public sendKey(keycode: number) : Promise<CoolinkRetCode> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'sendKey', params: { keycode: keycode } }; return mpWeb.callNative(bridgeParams); } public registerMessageReceiver(obj: CoolinkRegisterMessageReceiverParams) : void { let bridgeParams : BridgeParams = { module: 'protocol', method: 'registerMessageReceiver', params: { miniAppCode: obj.miniAppCode, methodName: 'onMessageReceiver', } }; mpWeb.callNativeWithPersistentCallBack(bridgeParams, 'onMessageReceiver', obj.callback); } public registerMessageProcessor(callback: Function) : void { ProtocolModule.msgcallback = callback; } public invokeRemoteIntent(param: CoolinkStartActionParams) : Promise<CoolinkRetCode> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'invokeRemoteIntent', params: { ...param } }; return mpWeb.callNative(bridgeParams); } public getRemoteAppState(param: CoolinkGetRemoteAppStateParams) : Promise<CoolinkRetState> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'getRemoteAppState', params: { ...param } }; return mpWeb.callNative(bridgeParams); } public registerConnectChanged(obj: CoolinkRegisterMessageReceiverParams) : void { let bridgeParams : BridgeParams = { module: 'protocol', method: 'registerConnectChanged', params: { miniAppCode: obj.miniAppCode, methodName: 'onConnectChanged', } }; mpWeb.callNativeWithPersistentCallBack(bridgeParams, 'onConnectChanged', obj.callback); } public generateHttpP2PHostMapping(filePath:String) : Promise<CoolinkRetHttpHostMapping> { let bridgeParams : BridgeParams = { module: 'protocol', method: 'generateHttpP2PHostMapping', params: { path:filePath } }; return mpWeb.callNative(bridgeParams); } } export default ProtocolModule;