coolink-ts
Version:
Coocaa Coolink APP JavaScript library base on Thresh-lib.
87 lines (74 loc) • 2.86 kB
text/typescript
import coolink from '../coolink/api';
import cooInfo, { setCooInfo } from '../shared/cooInfo';
import { linkingMessageOnRecv } from '../coolink-base/messageProcess'
//import Util from '../manager/UtilManager';
let getSystemInfoFinishFlag = false;
let getAppInfoFinishFlag = false;
function clearFinishFlag() {
getSystemInfoFinishFlag = false;
getAppInfoFinishFlag = false;
}
function channelStartupFinish() {
if (getSystemInfoFinishFlag &&
getAppInfoFinishFlag
) {
return true;
} else {
return false;
}
}
export default async function channelStartup() : Promise<void> {
//Util.log('channelStartup()');
clearFinishFlag();
let getBaseInfo = new Promise((resolve, reject) => {
/////////////////////////////////////////////////////////////////////////
// 获取系统信息
coolink.baseinfo.getSystemInfo()
.then((res) => {
//Util.log('getSystemInfo 1: ' + JSON.stringify(res));
setCooInfo({ systemInfo: JSON.parse(JSON.stringify(res)) });
//
getSystemInfoFinishFlag = true; // 设置该项完成标志
if (channelStartupFinish()) {
resolve(0);
}
})
.catch((err) => {
getSystemInfoFinishFlag = true; // 设置该项完成标志
if (channelStartupFinish()) {
reject();
}
});
/////////////////////////////////////////////////////////////////////////
// 获取APP信息
coolink.baseinfo.getAppInfo()
.then((res) => {
//Util.log('getAppInfo 1: ' + JSON.stringify(res));
setCooInfo({ appInfo: JSON.parse(JSON.stringify(res)) });
getAppInfoFinishFlag = true; // 设置该项完成标志
if (channelStartupFinish()) {
resolve(0);
}
})
.catch((err) => {
getAppInfoFinishFlag = true; // 设置该项完成标志
if (channelStartupFinish()) {
reject();
}
});
});
await getBaseInfo;
/////////////////////////////////////////////////////////////////////////
let miniAppCode = '';
if (cooInfo?.infos?.appInfo?.miniAppCode) {
miniAppCode = cooInfo.infos.appInfo.miniAppCode;
} else {
miniAppCode = 'coolink-mobile-applet/coo-movie';//'miniApp_debug_example';
}
setCooInfo({ miniAppCode });
coolink.protocol.registerMessageReceiver({
miniAppCode: miniAppCode,
callback: linkingMessageOnRecv,
});
return;
}