@glodon-ecs/web-bridge-sdk 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.prettierrc ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "tabWidth": 2,
5
+ "trailingComma": "es5",
6
+ "printWidth": 100,
7
+ "endOfLine": "auto"
8
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ ## 发布日志
2
+
3
+ #### 0.3.0
4
+
5
+ - 兼容 CC 方法调用中需要监听异步回调事件,才能在回调事件中返回返回值
6
+
7
+ #### 0.2.0
8
+
9
+ - 兼容 SU 事件取消后,回调函数继续被调用时,函数不存在报错
10
+
11
+ #### 0.1.0
12
+
13
+ 第一版 SDK
package/README.md CHANGED
@@ -1,57 +1,68 @@
1
- ## ECS-BRIDGE-SDK
2
-
3
- > ECS 通信桥接 SDK
4
-
5
- - node >= 16
6
-
7
- ### 使用示例
8
-
9
- ```js
10
- import ECSHubBridge from "@glodon-ecs/web-bridge-sdk";
11
-
12
- // 使用示例
13
- async function main() {
14
- // initialize 方法需要先被调用
15
-
16
- await ECSHubBridge.initialize({ env: "sketchup" });
17
- const bridge = ECSHubBridge.getInstance();
18
-
19
- // 调用方法
20
- const data = await bridge.callMethod("getInitialData", "param1");
21
-
22
- // 订阅
23
- const unsubscribe = bridge.subscribe("modelChanged", (data) => {});
24
- }
25
- ```
26
-
27
- #### 扩展适配器
28
-
29
- > 需要实现如下三个内部方法
30
-
31
- ```js
32
- class CADAdapter {
33
- // 初始方法
34
- async init() {
35
- this._client = window.CADPlugin; // 假设第三方CAD插件
36
- }
37
-
38
- // 调用内部函数
39
- call(method, args) {
40
- return this._client.execCommand(method, ...args);
41
- }
42
-
43
- // 注册事件监听
44
- onEvent(event, callback) {
45
- this._client.on(event, callback);
46
- return () => this._client.off(event, callback);
47
- }
48
- }
49
-
50
- // 注入自定义适配器
51
- await ECSHubBridge.initialize();
52
- ECSHubBridge.setAdapter(new CADAdapter());
53
-
54
- // 设置自定义适配器的client交互对象,如 ecsClient
55
- await ECSHubBridge.initialize();
56
- ECSHubBridge.setAdapterClient(new ECS({...}));
57
- ```
1
+ ## ECS-BRIDGE-SDK
2
+
3
+ ECSHub Panel 存在与多个宿主环境交互的场景,因此抽离出桥接的 SDK,以适配不同宿主环境。
4
+
5
+ 已支持:
6
+
7
+ - [x] SketchUp
8
+ - [ ] QT
9
+ - [x] Web(for test)
10
+ - [ ] Rhino
11
+ - [-] Concetto
12
+
13
+ ### 前置项
14
+
15
+ - node >= 16
16
+
17
+ ### 使用示例
18
+
19
+ ```js
20
+ import ECSHubBridge from '@glodon-ecs/web-bridge-sdk';
21
+
22
+ // 使用示例
23
+ async function main() {
24
+ // initialize 方法需要先被调用
25
+ // await ECSHubBridge.initialize(); // 自动检测初始化,QT、SU、Web环境
26
+ const options = { env: 'sketchup', logger: window.console }; // options 可选
27
+ await ECSHubBridge.initialize(options);
28
+ const bridge = ECSHubBridge.getInstance();
29
+
30
+ // 调用方法
31
+ const data = await bridge.callMethod('getInitialData', 'param1');
32
+
33
+ // 订阅
34
+ const unsubscribe = bridge.subscribe('modelChanged', (data) => {});
35
+ }
36
+ ```
37
+
38
+ #### 扩展适配器
39
+
40
+ > 需要实现如下三个内部方法
41
+
42
+ ```js
43
+ class CADAdapter {
44
+ // 初始方法
45
+ async init() {
46
+ this.client = window.CADPlugin; // 假设第三方CAD插件
47
+ }
48
+
49
+ // 调用内部函数
50
+ call(method, args, options) {
51
+ return this.client.execCommand(method, args, options);
52
+ }
53
+
54
+ // 注册事件监听
55
+ onEvent(event, callback) {
56
+ this.client.on(event, callback);
57
+ return () => this.client.off(event, callback);
58
+ }
59
+ }
60
+
61
+ // 注入自定义适配器
62
+ await ECSHubBridge.initialize();
63
+ ECSHubBridge.setAdapter(new CADAdapter(), 'cad');
64
+
65
+ // 设置自定义适配器的client交互对象,如 ecsClient
66
+ await ECSHubBridge.initialize();
67
+ ECSHubBridge.setAdapterClient(new ECS({...}));
68
+ ```