UNPKG

zby-live-sdk

Version:

This is a live SDK for weclassroom.

47 lines (44 loc) 1.93 kB
/* * @Author: why * @Date: 2019-06-18 11:42:34 * @LastEditors: Please set LastEditors * @LastEditTime: 2020-09-11 11:33:35 * @Description: this is a bridge for js and app */ import {productName, classType} from '../config/config'; import defaultApi from '../default'; const EM = window.EM; // 不需要写日志方法名集合 const noWriteLogNames = ['GetCurCpuMemInfo', 'WriteLog', 'IsStreamAudioMuted', 'IsStreamVideoMuted']; export const cb = (extName) => { // EM 是寄宿于端的,浏览器中并不存在,为防止报错需要先进行能力检测 if (EM) { return function(name, args, sdkName){ const argsStr = typeof args === 'object' ? JSON.stringify({...args, classType}) : args; return new Promise((resolve, reject) => { EM.CallMethod( extName, name, argsStr, (code, msg) => { const msgbody = `${extName}--action: ${sdkName || ''}--${name || name.charAt(0).toLowerCase() + name.slice(1)} Code: ${code}\nMessage: ${msg}\nparams:${JSON.stringify(args)}`; if (code === 0) { !noWriteLogNames.includes(name) && defaultApi.writeLog && defaultApi.writeLog(msgbody, productName); resolve({ code, msg: msg && /\{|\}/g.test(msg) && JSON.parse(msg) }); } else { name !== 'WriteLog' && defaultApi.writeLog && defaultApi.writeLog(msgbody, productName, 'error'); resolve({ code, msg }); } }); }).catch(() => { name !== 'WriteLog' && defaultApi.writeLog && defaultApi.writeLog(`${extName}--action: ${sdkName || ''}--${name || name.charAt(0).toLowerCase() + name.slice(1)} Code: ${code}\nMessage: ${msg}\nparams:${JSON.stringify(args)}`, productName, 'error'); }); }; } };