ECS 通信桥接 SDK
- node >= 16
import ECSHubBridge from "@glodon-ecs/web-bridge-sdk";
// 使用示例
async function main() {
// initialize 方法需要先被调用
await ECSHubBridge.initialize({ env: "sketchup" });
const bridge = ECSHubBridge.getInstance();
// 调用方法
const data = await bridge.callMethod("getInitialData", "param1");
// 订阅
const unsubscribe = bridge.subscribe("modelChanged", (data) => {});
}
需要实现如下三个内部方法
class CADAdapter {
// 初始方法
async init() {
this._client = window.CADPlugin; // 假设第三方CAD插件
}
// 调用内部函数
call(method, args) {
return this._client.execCommand(method, ...args);
}
// 注册事件监听
onEvent(event, callback) {
this._client.on(event, callback);
return () => this._client.off(event, callback);
}
}
// 注入自定义适配器
await ECSHubBridge.initialize();
ECSHubBridge.setAdapter(new CADAdapter());
// 设置自定义适配器的client交互对象,如 ecsClient
await ECSHubBridge.initialize();
ECSHubBridge.setAdapterClient(new ECS({...}));