coolink-ts
Version:
Coocaa Coolink APP JavaScript library base on Thresh-lib.
67 lines (57 loc) • 1.68 kB
text/typescript
import { isTv } from '../shared/cooInfo';
import ProtocolModule from '../coolink/ProtocolModule'
import { Util } from '..';
// 组件通讯的映射数组
var linkingMsgCallbacks : any = {};
export function addLinkingMsgCallback(key: string, cb: Function) {
linkingMsgCallbacks[key] = cb;
}
export function deleteLinkingMsgCallback(key: string) {
try {
delete linkingMsgCallbacks[key];
}
catch (e) {
Util.log(e);
}
}
export function linkingMessageOnRecv(res) {
let isTvFlag = isTv();
let hasProcess = false;
//
let msgObj : any = {};
try {
if (isTvFlag) {
if (res && res?.content) {
let obj1 = JSON.parse(res.content);
if (obj1?.content) {
let obj2 = JSON.parse(obj1.content);
msgObj = obj2;
}
}
} else {
if (res && res?.content) {
let obj1 = JSON.parse(res.content);
if (obj1?.message?.content) {
let obj2 = JSON.parse(obj1.message.content);
msgObj = obj2;
}
}
}
} catch (ex) {
//
}
// 寻找组件对应的回调
if (msgObj?.mapToLinkingWidget) {
let key = msgObj.mapToLinkingWidget;
if (linkingMsgCallbacks[key]) {
hasProcess = true;
linkingMsgCallbacks[key](msgObj, res);
}
}
//
if (!hasProcess) {
if (ProtocolModule.msgcallback) {
ProtocolModule.msgcallback(msgObj, res);
}
}
}