UNPKG

coolink-ts

Version:

Coocaa Coolink APP JavaScript library base on Thresh-lib.

82 lines (73 loc) 2.27 kB
import { Timer } from '..'; import Bridge from '../manager/BridgeManager' import { BridgeParams } from '../types/type' import { CoolinkHttpRequestParam, CoolinkRetHttp, CoolinkRegisterMessageReceiverParams, CoolinkRetGetOfficialDomain } from './type' import mpWeb from './MpWeb'; class NetworkModule { private static instance: NetworkModule; public static getModule(): NetworkModule { if (this.instance == null) { this.instance = new NetworkModule() } return NetworkModule.instance } private doHttp(bridgeParams) : Promise<CoolinkRetHttp> { return new Promise<CoolinkRetHttp>((resolve) => { let isTimeout = false; // let timeoutHandler: string = Timer.setTimeout(() => { isTimeout = true; let timeoutRet = { code: 0, httpCode: 504, content: JSON.stringify({ code: -1, msg: 'timeout 20s' }) }; resolve(timeoutRet); }, 20 * 1000); // set 20s timeout /////////////////////////////////////////////////// mpWeb.callNative(bridgeParams) .then((httpRet) => { Timer.clearTimer(timeoutHandler); resolve(httpRet); }); }) } public httpRequest(param1: CoolinkHttpRequestParam) : Promise<CoolinkRetHttp> { let bridgeParams : BridgeParams = { module: 'network', method: 'httpRequest', params: param1 }; return this.doHttp(bridgeParams); } public registerNetworkChanged(obj: CoolinkRegisterMessageReceiverParams) : void { let bridgeParams : BridgeParams = { module: 'network', method: 'registerNetworkChanged', params: { miniAppCode: obj.miniAppCode, methodName: 'onNetworkChanged', } }; mpWeb.callNativeWithPersistentCallBack(bridgeParams, 'onNetworkChanged', obj.callback); } public getOfficialDomain(domain: string) : Promise<CoolinkRetGetOfficialDomain> { let bridgeParams : BridgeParams = { module: 'network', method: 'getOfficialDomain', params: { domain } }; return mpWeb.callNative(bridgeParams); } } export default NetworkModule;