zby-live-sdk
Version:
This is a live SDK for weclassroom.
71 lines • 2.37 kB
JavaScript
/*
* @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: ''
});
},
};