UNPKG

zby-live-sdk

Version:

This is a live SDK for weclassroom.

71 lines 2.37 kB
/* * @Author: why * @Date: 2019-08-08 19:33:44 * @LastEditors: why * @LastEditTime: 2019-09-11 15:35:34 * @Description: */ import {defaultExt, classType} from '../config/config'; const EM = window.EM; 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) { name !== 'WriteLog' && 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'); }); }; } }; const callMethod = cb(defaultExt.name); export default { // 初始化 init() { // 加载扩展 if (EM) { return new Promise(resolve => { EM.Load(defaultExt.name, defaultExt.version, false, ()=>{ resolve(); }); }); } }, writeLog(args) { return callMethod('WriteLog', args); }, /** * @function 设置用户信息 * @param {string} userId 用户id * @param {string} institutionId 机构id * @return: void */ setUserInfo(userId, institutionId) { return callMethod('SetUserInfo', { user_id: userId + '', institution_id: institutionId + '', description: '' }); }, };