dingtalk-jsapi
Version:
钉钉 模块化 多端统一 API
1 lines • 1.47 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.off=exports.on=void 0;var EventEmitter=function(){function e(){this.handlerMap={}}return e.prototype.on=function(e,t){this.handlerMap[e]=(this.handlerMap[e]||[]).concat(t)},e.prototype.off=function(e,t){var o,n=!1;this.handlerMap[e]=null===(o=this.handlerMap[e])||void 0===o?void 0:o.filter(function(e){return!(!n&&e===t)||(n=!0,!1)})},e.prototype.emit=function(e,t){var o;null===(o=this.handlerMap[e])||void 0===o||o.forEach(function(e){return e(t)})},e}(),eventEmitter=new EventEmitter,on;exports.on=on;var off;exports.off=off,"undefined"!=typeof dingtalk&&dingtalk.event&&dingtalk.event.register?(dingtalk.event.register(function(e,t){var o;if("openapi.event.emit"===e){if("internal.request.lwpWin"===(null===(o=null===t||void 0===t?void 0:t.body)||void 0===o?void 0:o.__methodName__)){var n=t.body.body;if(""===n)t.body.body={};else try{t.body.body=JSON.parse(n)}catch(e){t.body.__methodUrl__;t.body={code:502,body:{code:"0",reason:"RPC json parse error"}}}delete t.body.__methodName__,delete t.body.__methodUrl__}var r=new MessageEvent("message",{data:t,origin:"app://desktop.dingtalk.com",source:window});window.dispatchEvent(r)}eventEmitter.emit(e,t)}),exports.on=on=eventEmitter.on.bind(eventEmitter),exports.off=off=eventEmitter.off.bind(eventEmitter)):exports.on=on=exports.off=off=function(){console.log('not support in current environment, can\'t resolve "dingtalk.event.register"')};