@glodon-ecs/web-bridge-sdk 0.4.0 → 0.5.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/CHANGELOG.md CHANGED
@@ -1,17 +1,21 @@
1
- ## 发布日志
2
-
3
- #### 0.4.0
4
-
5
- - 从js迁移到ts,SDK支持类型系统
6
-
7
- #### 0.3.0
8
-
9
- - 兼容 CC 方法调用中需要监听异步回调事件,才能在回调事件中返回返回值
10
-
11
- #### 0.2.0
12
-
13
- - 兼容 SU 事件取消后,回调函数继续被调用时,函数不存在报错
14
-
15
- #### 0.1.0
16
-
17
- 第一版 SDK
1
+ ## 发布日志
2
+
3
+ #### 0.5.0
4
+
5
+ - 支持CCWeb(qiankun)
6
+
7
+ #### 0.4.0
8
+
9
+ - 从js迁移到ts,SDK支持类型系统
10
+
11
+ #### 0.3.0
12
+
13
+ - 兼容 CC 方法调用中需要监听异步回调事件,才能在回调事件中返回返回值
14
+
15
+ #### 0.2.0
16
+
17
+ - 兼容 SU 事件取消后,回调函数继续被调用时,函数不存在报错
18
+
19
+ #### 0.1.0
20
+
21
+ 第一版 SDK
package/README.md CHANGED
@@ -1,95 +1,96 @@
1
- ## ECS-BRIDGE-SDK
2
-
3
- ECSHub Panel 存在与多个宿主环境交互的场景,因此抽离出桥接的 SDK,以适配不同宿主环境。
4
-
5
- 已支持:
6
-
7
- - [x] SketchUp
8
- - [ ] QT
9
- - [ ] Web(for test)
10
- - [ ] Rhino
11
- - [x] Concetto
12
-
13
- ### 前置项
14
-
15
- - node >= 16
16
-
17
- ### 安装
18
-
19
- ```bash
20
- npm install @glodon-ecs/web-bridge-sdk
21
- ```
22
-
23
- ### 使用示例
24
-
25
- ```ts
26
- import ECSHubBridge, { BridgeEnv } from '@glodon-ecs/web-bridge-sdk';
27
- // 或使用命名导入:import { ECSHubBridge, BridgeEnv } from "@glodon-ecs/web-bridge-sdk";
28
-
29
- // 使用示例
30
- async function main() {
31
- // initialize 方法需要先被调用
32
- // await ECSHubBridge.initialize(); // 自动检测初始化,QT、SU、Web环境
33
- const options = { env: BridgeEnv.sketchup, logger: window.console }; // options 可选
34
- await ECSHubBridge.initialize(options);
35
- const bridge = ECSHubBridge.getInstance();
36
-
37
- // 调用方法
38
- const data = await bridge.callMethod('getInitialData', 'param1');
39
-
40
- // 订阅
41
- const unsubscribe = bridge.subscribe('modelChanged', (data) => {});
42
-
43
- // 取消订阅
44
- unsubscribe();
45
- }
46
- ```
47
-
48
- #### 扩展适配器
49
-
50
- > 继承 `BaseAdapter` 并实现三个抽象方法
51
-
52
- ```ts
53
- import { BaseAdapter } from '@glodon-ecs/web-bridge-sdk';
54
- import type { LoggerType } from '@glodon-ecs/web-bridge-sdk';
55
-
56
- class CADAdapter extends BaseAdapter {
57
- // 初始方法
58
- async init() {
59
- this.client = window.CADPlugin; // 假设第三方CAD插件
60
- }
61
-
62
- // 调用内部函数
63
- async call(method: string, args: unknown[]) {
64
- return this.client.execCommand(method, ...args);
65
- }
66
-
67
- // 注册事件监听
68
- onEvent(event: string, callback: (...args: unknown[]) => void) {
69
- this.client.on(event, callback);
70
- return () => this.client.off(event, callback);
71
- }
72
- }
73
-
74
- // 注入自定义适配器
75
- await ECSHubBridge.initialize();
76
- ECSHubBridge.setAdapter(new CADAdapter(), 'cad');
77
-
78
- // 设置自定义适配器的 client 交互对象,如 ecsClient
79
- await ECSHubBridge.initialize();
80
- ECSHubBridge.setAdapterClient(client);
81
- ```
82
-
83
- ### 导出列表
84
-
85
- | 导出 | 类型 | 说明 |
86
- | --------------- | --------------- | ---------------------------------------------------------- |
87
- | `ECSHubBridge` | class (default) | 桥接器主类 |
88
- | `BridgeEnv` | enum | 环境枚举:`qt` / `web` / `sketchup` / `concetto` / `rhino` |
89
- | `BaseAdapter` | abstract class | 适配器基类,扩展适配器时继承 |
90
- | `BridgeOptions` | interface | 初始化配置项类型 |
91
- | `LoggerType` | type | 日志对象类型 |
92
-
93
- ```
94
-
95
- ```
1
+ ## ECS-BRIDGE-SDK
2
+
3
+ ECSHub Panel 存在与多个宿主环境交互的场景,因此抽离出桥接的 SDK,以适配不同宿主环境。
4
+
5
+ 已支持:
6
+
7
+ - [] SketchUp
8
+ - [ ] QT
9
+ - [ ] Web(for test)
10
+ - [ ] Rhino
11
+ - [] Concetto
12
+ - [√] ConcettoWeb
13
+
14
+ ### 前置项
15
+
16
+ - node >= 16
17
+
18
+ ### 安装
19
+
20
+ ```bash
21
+ npm install @glodon-ecs/web-bridge-sdk
22
+ ```
23
+
24
+ ### 使用示例
25
+
26
+ ```ts
27
+ import ECSHubBridge, { BridgeEnv } from '@glodon-ecs/web-bridge-sdk';
28
+ // 或使用命名导入:import { ECSHubBridge, BridgeEnv } from "@glodon-ecs/web-bridge-sdk";
29
+
30
+ // 使用示例
31
+ async function main() {
32
+ // initialize 方法需要先被调用
33
+ // await ECSHubBridge.initialize(); // 自动检测初始化,QT、SU、Web环境
34
+ const options = { env: BridgeEnv.sketchup, logger: window.console }; // options 可选
35
+ await ECSHubBridge.initialize(options);
36
+ const bridge = ECSHubBridge.getInstance();
37
+
38
+ // 调用方法
39
+ const data = await bridge.callMethod('getInitialData', 'param1');
40
+
41
+ // 订阅
42
+ const unsubscribe = bridge.subscribe('modelChanged', (data) => {});
43
+
44
+ // 取消订阅
45
+ unsubscribe();
46
+ }
47
+ ```
48
+
49
+ #### 扩展适配器
50
+
51
+ > 继承 `BaseAdapter` 并实现三个抽象方法
52
+
53
+ ```ts
54
+ import { BaseAdapter } from '@glodon-ecs/web-bridge-sdk';
55
+ import type { LoggerType } from '@glodon-ecs/web-bridge-sdk';
56
+
57
+ class CADAdapter extends BaseAdapter {
58
+ // 初始方法
59
+ async init() {
60
+ this.client = window.CADPlugin; // 假设第三方CAD插件
61
+ }
62
+
63
+ // 调用内部函数
64
+ async call(method: string, args: unknown[]) {
65
+ return this.client.execCommand(method, ...args);
66
+ }
67
+
68
+ // 注册事件监听
69
+ onEvent(event: string, callback: (...args: unknown[]) => void) {
70
+ this.client.on(event, callback);
71
+ return () => this.client.off(event, callback);
72
+ }
73
+ }
74
+
75
+ // 注入自定义适配器
76
+ await ECSHubBridge.initialize();
77
+ ECSHubBridge.setAdapter(new CADAdapter(), 'cad');
78
+
79
+ // 设置自定义适配器的 client 交互对象,如 ecsClient
80
+ await ECSHubBridge.initialize();
81
+ ECSHubBridge.setAdapterClient(client);
82
+ ```
83
+
84
+ ### 导出列表
85
+
86
+ | 导出 | 类型 | 说明 |
87
+ | --------------- | --------------- | ---------------------------------------------------------- |
88
+ | `ECSHubBridge` | class (default) | 桥接器主类 |
89
+ | `BridgeEnv` | enum | 环境枚举:`qt` / `web` / `sketchup` / `concetto` / `rhino` |
90
+ | `BaseAdapter` | abstract class | 适配器基类,扩展适配器时继承 |
91
+ | `BridgeOptions` | interface | 初始化配置项类型 |
92
+ | `LoggerType` | type | 日志对象类型 |
93
+
94
+ ```
95
+
96
+ ```
package/lib/index.d.ts CHANGED
@@ -33,7 +33,8 @@ export declare enum BridgeEnv {
33
33
  web = "web",
34
34
  sketchup = "sketchup",
35
35
  concetto = "concetto",
36
- rhino = "rhino"
36
+ rhino = "rhino",
37
+ qiankun = "qiankun"
37
38
  }
38
39
 
39
40
  export declare interface BridgeOptions {
@@ -59,6 +60,7 @@ declare class ECSHubBridge {
59
60
  * @param {LoggerType} [options.logger] 日志输出对象
60
61
  */
61
62
  constructor(options?: BridgeOptions);
63
+ _isQiankun(): boolean;
62
64
  /**
63
65
  * 环境检测
64
66
  * @private