UNPKG

@ccos/webos

Version:

A Base JavaScript Framework for Skyworth/Coocaa TV

134 lines (113 loc) 3.65 kB
import { callLiteApi } from './nativeApi' let moduleName = 'base'; let tv_protocol = 'http'; let tv_server = 'localhost'; let tv_port = 32758; function setDebugModeServer(ipAddr) { if (ipAddr) { tv_server = ipAddr; } } export function getUrlBase() { return `${tv_protocol}://${tv_server}:${tv_port}`; } function call_uapi_inner(path, str) { return new Promise((resolve) => { try { let xhr = new XMLHttpRequest(); let url = getUrlBase() + path; xhr.open("POST", url, true); //异步 xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.responseType = 'json'; //如果为text则response为文本 xhr.timeout = 60 * 60 * 1000; xhr.onreadystatechange = function () { //绑定响应状态事件监听函数 if (xhr.readyState == 4) { //监听readyState状态 if (xhr.status == 200 || xhr.status == 0) { //监听HTTP状态码 //console.log(xhr.responseText); //接收数据 //设置responseType为 json 则xhr.response 返回json对象,则不能通过 responseText 取得对象 resolve(xhr.response); } else { resolve('error: ' + xhr.status); } } else { // } } xhr.onerror = function() { //console.error(xhr.statusText); resolve('error: ' + xhr.statusText); } xhr.ontimeout = function() { //console.error('The request for ' + url + ' timed out.'); resolve('error: ' + 'timeout'); }; xhr.send(str); //发送请求 } catch (e) { resolve('error: ' + e); } }); } export async function call_uapi(path, str) { let res = await call_uapi_inner(path, str || ''); if (typeof res == 'object') { return res; } else { return { code: -100000, msg: res } } } /////////////////////////////////////////////////////////////////////////////////////////// let eventCallBack = null; function webosBrowserCallBack(jsonStr) { try { const jsonObj = JSON.parse(jsonStr); if (eventCallBack) { eventCallBack(jsonObj); } } catch (e) {} } window['webosBrowserCallBack'] = webosBrowserCallBack; function getBaseInfo() { return callLiteApi(moduleName, 'getBaseInfo', ''); } async function getBaseInfoAsync() { await new Promise((resolve) => { let ret = getBaseInfo(); resolve(ret); }); } function registerEventHandler(callback) { eventCallBack = callback; } function unregisterEventHandler() { eventCallBack = null; } function setSystemKeyIntercept(keyCodeArray) { return callLiteApi(moduleName, 'setSystemKeyIntercept', keyCodeArray); } function exitActivity() { return callLiteApi(moduleName, 'exitActivity', ''); } function gotoPreviousPage() { return callLiteApi(moduleName, 'gotoPreviousPage', ''); } function setHome() { return callLiteApi(moduleName, 'setHome', ''); } export default { setDebugModeServer, getBaseInfo, getBaseInfoAsync, setSystemKeyIntercept, exitActivity, gotoPreviousPage, setHome, // registerEventHandler, unregisterEventHandler, };