ms-vite-plugin 1.4.29 → 1.4.30

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.
@@ -0,0 +1,154 @@
1
+ # 云控模块 (Cloud)
2
+
3
+ 云控模块用于在主脚本中使用内置云控 WebSocket 连接。脚本可以主动连接云控服务器、判断连接状态、断开连接、上报事件数据,并监听服务器事件数据。
4
+
5
+ ## 注意事项
6
+
7
+ - `cloud` 只在主脚本上下文注册,不支持在线程脚本里调用。
8
+ - 服务器事件只有一个主脚本监听槽位,多次调用 `onEvent` 会覆盖旧监听。
9
+
10
+ ## 协议
11
+
12
+ 脚本上报数据时发送 JSON 文本帧:
13
+
14
+ ```json
15
+ {
16
+ "type": "scriptReport",
17
+ "event": "eventName",
18
+ "data": {}
19
+ }
20
+ ```
21
+
22
+ 服务器下发脚本事件时发送 JSON 文本帧:
23
+
24
+ ```json
25
+ {
26
+ "type": "scriptEvent",
27
+ "event": "eventName",
28
+ "data": {}
29
+ }
30
+ ```
31
+
32
+ `event` 是脚本和服务器约定的自定义事件名。`data` 在 JS 中是普通 Object,必须能被 JSON 序列化。
33
+
34
+ ## API 参考
35
+
36
+ ### connect - 连接云控服务器
37
+
38
+ ```typescript
39
+ function connect(url: string, deviceNo?: string): boolean;
40
+ ```
41
+
42
+ **参数**
43
+
44
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
45
+ | ---------- | ------ | -------- | -------------- | ---- |
46
+ | `url` | string | 是 | - | 完整 `ws://` 或 `wss://` 云控地址 |
47
+ | `deviceNo` | string | 否 | 已保存设备编号 | 连接时追加到 query 的设备编号 |
48
+
49
+ **返回值**
50
+
51
+ | 类型 | 描述 |
52
+ | ------- | ---- |
53
+ | boolean | URL 校验通过且连接请求已提交时返回 true |
54
+
55
+ **说明**
56
+
57
+ - `connect` 只能在主脚本上下文调用。
58
+ - `connect` 只影响当前运行期云控连接,不会写入设置页的持久化云控配置。
59
+
60
+ **示例**
61
+
62
+ ```javascript
63
+ const accepted = cloud.connect("wss://example.com/control", "device-001");
64
+ logi("云控连接请求:", accepted);
65
+ ```
66
+
67
+ ### isConnected - 判断是否已连接
68
+
69
+ ```typescript
70
+ function isConnected(): boolean;
71
+ ```
72
+
73
+ **返回值**
74
+
75
+ | 类型 | 描述 |
76
+ | ------- | ---- |
77
+ | boolean | WebSocket 已连接时返回 true |
78
+
79
+ **示例**
80
+
81
+ ```javascript
82
+ if (cloud.isConnected()) {
83
+ cloud.report("status", { value: "ready" });
84
+ }
85
+ ```
86
+
87
+ ### disconnect - 断开连接
88
+
89
+ ```typescript
90
+ function disconnect(): void;
91
+ ```
92
+
93
+ 断开云控 WebSocket 并停止自动重连。
94
+
95
+ **示例**
96
+
97
+ ```javascript
98
+ cloud.disconnect();
99
+ ```
100
+
101
+ ### report - 上报数据
102
+
103
+ ```typescript
104
+ function report(event: string, data: Record<string, any>): boolean;
105
+ ```
106
+
107
+ **参数**
108
+
109
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
110
+ | ------- | --------- | -------- | ------ | ---- |
111
+ | `event` | string | 是 | - | 自定义事件名 |
112
+ | `data` | Record<string, any> | 是 | - | 要上报的普通 Object 参数 |
113
+
114
+ **返回值**
115
+
116
+ | 类型 | 描述 |
117
+ | ------- | ---- |
118
+ | boolean | 已连接且 JSON 文本帧已提交写出时返回 true |
119
+
120
+ **示例**
121
+
122
+ ```javascript
123
+ const ok = cloud.report("taskFinished", {
124
+ taskId: "A-1001",
125
+ success: true,
126
+ costMs: 1280,
127
+ });
128
+ logi("上报结果:", ok);
129
+ ```
130
+
131
+ ### onEvent - 监听服务器事件
132
+
133
+ ```typescript
134
+ function onEvent(callback: ((event: string, data: Record<string, any>) => void) | null): void;
135
+ ```
136
+
137
+ 监听服务器发送的 `scriptEvent` 协议帧。传入 `null` 会取消主脚本监听。
138
+ 此回调注册接口只能在主线程调用,不能在线程脚本中调用。
139
+
140
+ **参数**
141
+
142
+ | 参数名 | 类型 | 是否必填 | 描述 |
143
+ | ---------- | ----------------------------- | -------- | ---- |
144
+ | `callback` | `(event, data) => void` 或 `null` | 是 | 事件处理函数,或传 `null` 取消监听 |
145
+
146
+ **示例**
147
+
148
+ ```javascript
149
+ cloud.onEvent((event, data) => {
150
+ if (event === "startTask") {
151
+ logi("任务参数:", data);
152
+ }
153
+ });
154
+ ```
@@ -456,7 +456,7 @@ logi(`CPU 限流延迟: ${delay.minMs}~${delay.maxMs}ms`);
456
456
 
457
457
  ### setStopCallback
458
458
 
459
- 设置停止回调函数(仅主线程调用)。
459
+ 设置停止回调函数。此回调注册接口只能在主线程调用,不能在线程脚本中调用。
460
460
 
461
461
  ```typescript
462
462
  function setStopCallback(callback: () => void): void;
@@ -483,7 +483,7 @@ setStopCallback(() => {
483
483
 
484
484
  ### setExceptionCallback
485
485
 
486
- 设置异常停止回调函数(仅主线程调用)。
486
+ 设置异常停止回调函数。此回调注册接口只能在主线程调用,不能在线程脚本中调用。
487
487
 
488
488
  ```typescript
489
489
  function setExceptionCallback(callback: () => void): void;
package/docs/api/ui.md CHANGED
@@ -74,15 +74,17 @@ UI 模块提供了 WebView 相关功能,支持事件通信和 JavaScript 交
74
74
 
75
75
  ```typescript
76
76
  function onEvent(
77
- onEvent: (event: string, data: Record<string, any>) => void
77
+ onEvent: ((event: string, data: Record<string, any>) => void) | null
78
78
  ): void;
79
79
  ```
80
80
 
81
+ 此回调注册接口只能在主线程调用,不能在线程脚本中调用。传入 `null` 会取消监听。
82
+
81
83
  **参数:**
82
84
 
83
85
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
84
86
  | --------- | -------------------------------------------------- | -------- | ------ | ------------------------------------ |
85
- | `onEvent` | (event: string, data: Record<string, any>) => void | 是 | | 事件回调函数,用于处理来自网页的事件 |
87
+ | `onEvent` | ((event: string, data: Record<string, any>) => void) 或 null | 是 | | 事件回调函数,用于处理来自网页的事件,传 `null` 取消监听 |
86
88
 
87
89
  **示例:**
88
90
 
@@ -0,0 +1,154 @@
1
+ # 云控模块 ($云控)
2
+
3
+ 云控模块用于在主脚本中使用内置云控 WebSocket 连接。脚本可以连接服务器、判断连接状态、断开连接、上报事件数据,并监听服务器事件数据。
4
+
5
+ ## 注意事项
6
+
7
+ - `$云控` 只在主脚本上下文注册,不支持在线程脚本里调用。
8
+ - 服务器事件只有一个主脚本监听槽位,多次调用 `监听事件回调` 会覆盖旧监听。
9
+
10
+ ## 协议
11
+
12
+ 脚本上报数据时发送 JSON 文本帧:
13
+
14
+ ```json
15
+ {
16
+ "type": "scriptReport",
17
+ "event": "eventName",
18
+ "data": {}
19
+ }
20
+ ```
21
+
22
+ 服务器下发脚本事件时发送 JSON 文本帧:
23
+
24
+ ```json
25
+ {
26
+ "type": "scriptEvent",
27
+ "event": "eventName",
28
+ "data": {}
29
+ }
30
+ ```
31
+
32
+ `event` 是脚本和服务器约定的自定义事件名。`data` 在 JS 中是普通 Object,必须能被 JSON 序列化。
33
+
34
+ ## API 参考
35
+
36
+ ### 连接
37
+
38
+ ```typescript
39
+ function 连接(地址: 字符串, 设备编号?: 字符串): 布尔值;
40
+ ```
41
+
42
+ **参数**
43
+
44
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
45
+ | ---------- | ------ | -------- | -------------- | ---- |
46
+ | `地址` | 字符串 | 是 | - | 完整 `ws://` 或 `wss://` 云控地址 |
47
+ | `设备编号` | 字符串 | 否 | 已保存设备编号 | 连接时追加到 query 的设备编号 |
48
+
49
+ **返回值**
50
+
51
+ | 类型 | 描述 |
52
+ | ------ | ---- |
53
+ | 布尔值 | URL 校验通过且连接请求已提交时返回 true |
54
+
55
+ **说明**
56
+
57
+ - `连接` 只能在主脚本上下文调用。
58
+ - `连接` 只影响当前运行期云控连接,不会写入设置页的持久化云控配置。
59
+
60
+ **示例**
61
+
62
+ ```javascript
63
+ const 已提交 = $云控.连接("wss://example.com/control", "device-001");
64
+ $打印信息日志("云控连接请求:", 已提交);
65
+ ```
66
+
67
+ ### 是否已连接
68
+
69
+ ```typescript
70
+ function 是否已连接(): 布尔值;
71
+ ```
72
+
73
+ **返回值**
74
+
75
+ | 类型 | 描述 |
76
+ | ------ | ---- |
77
+ | 布尔值 | WebSocket 已连接时返回 true |
78
+
79
+ **示例**
80
+
81
+ ```javascript
82
+ if ($云控.是否已连接()) {
83
+ $云控.上报数据("status", { value: "ready" });
84
+ }
85
+ ```
86
+
87
+ ### 断开连接
88
+
89
+ ```typescript
90
+ function 断开连接(): 无返回值;
91
+ ```
92
+
93
+ 断开云控 WebSocket 并停止自动重连。
94
+
95
+ **示例**
96
+
97
+ ```javascript
98
+ $云控.断开连接();
99
+ ```
100
+
101
+ ### 上报数据
102
+
103
+ ```typescript
104
+ function 上报数据(事件: 字符串, 数据: 字典<任意类型>): 布尔值;
105
+ ```
106
+
107
+ **参数**
108
+
109
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
110
+ | ------ | -------- | -------- | ------ | ---- |
111
+ | `事件` | 字符串 | 是 | - | 自定义事件名 |
112
+ | `数据` | 字典<任意类型> | 是 | - | 要上报的普通 Object 参数 |
113
+
114
+ **返回值**
115
+
116
+ | 类型 | 描述 |
117
+ | ------ | ---- |
118
+ | 布尔值 | 已连接且 JSON 文本帧已提交写出时返回 true |
119
+
120
+ **示例**
121
+
122
+ ```javascript
123
+ const 成功 = $云控.上报数据("taskFinished", {
124
+ taskId: "A-1001",
125
+ success: true,
126
+ costMs: 1280,
127
+ });
128
+ $打印信息日志("上报结果:", 成功);
129
+ ```
130
+
131
+ ### 监听事件回调
132
+
133
+ ```typescript
134
+ function 监听事件回调(回调: ((事件: 字符串, 数据: 字典<任意类型>) => 无返回值) | null): 无返回值;
135
+ ```
136
+
137
+ 监听服务器发送的 `scriptEvent` 协议帧。传入 `null` 会取消主脚本监听。
138
+ 该回调注册接口只能在主线程调用,不能在线程脚本中调用。
139
+
140
+ **参数**
141
+
142
+ | 参数名 | 类型 | 是否必填 | 描述 |
143
+ | ------ | ----------------------- | -------- | ---- |
144
+ | `回调` | `(事件, 数据) => 无返回值` 或 `null` | 是 | 事件处理函数,或传 `null` 取消监听 |
145
+
146
+ **示例**
147
+
148
+ ```javascript
149
+ $云控.监听事件回调((事件, 数据) => {
150
+ if (事件 === "startTask") {
151
+ $打印信息日志("任务参数:", 数据);
152
+ }
153
+ });
154
+ ```
@@ -457,7 +457,7 @@ $打印信息日志(`CPU 限流延迟: ${延迟.minMs}~${延迟.maxMs}ms`);
457
457
 
458
458
  ### $设置停止回调
459
459
 
460
- 设置停止回调函数(仅主线程调用)。
460
+ 设置停止回调函数。该回调注册接口只能在主线程调用,不能在线程脚本中调用。
461
461
 
462
462
  ```typescript
463
463
  declare const $设置停止回调: (回调: () => 无返回值) => 无返回值;
@@ -484,7 +484,7 @@ $设置停止回调(() => {
484
484
 
485
485
  ### $设置异常停止回调
486
486
 
487
- 设置异常停止回调函数(仅主线程调用)。
487
+ 设置异常停止回调函数。该回调注册接口只能在主线程调用,不能在线程脚本中调用。
488
488
 
489
489
  ```typescript
490
490
  declare const $设置异常停止回调: (回调: () => 无返回值) => 无返回值;
package/docs/apicn/ui.md CHANGED
@@ -62,15 +62,17 @@ UI 模块提供了 WebView 相关功能,支持事件通信和 JavaScript 交
62
62
 
63
63
  ```typescript
64
64
  function 监听事件回调(
65
- 回调函数: (事件名称: 字符串, 数据: 字典<任意类型>) => 无返回值
65
+ 回调函数: ((事件名称: 字符串, 数据: 字典<任意类型>) => 无返回值) | null
66
66
  ): 无返回值;
67
67
  ```
68
68
 
69
+ 该回调注册接口只能在主线程调用,不能在线程脚本中调用。传入 `null` 会取消监听。
70
+
69
71
  **参数:**
70
72
 
71
73
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
72
74
  | ---------- | ---------------------------------------------------- | -------- | ------ | ------------------------------------ |
73
- | `回调函数` | (事件名称: 字符串, 数据: 字典<任意类型>) => 无返回值 | 是 | | 事件回调函数,用于处理来自网页的事件 |
75
+ | `回调函数` | ((事件名称: 字符串, 数据: 字典<任意类型>) => 无返回值) 或 null | 是 | | 事件回调函数,用于处理来自网页的事件,传 `null` 取消监听 |
74
76
 
75
77
  **示例:**
76
78
 
@@ -0,0 +1,175 @@
1
+ # 云控模块 (Cloud)
2
+
3
+ 云控模块用于在 Python 主脚本中使用内置云控 WebSocket 连接。脚本可以连接云控服务器、判断连接状态、断开连接、上报事件数据,并监听服务器事件数据。
4
+
5
+ ## 注意事项
6
+
7
+ - Python 云控模块只支持英文方法,不提供中文方法。
8
+ - `cloud` 只能在主脚本中调用,不支持在线程脚本里调用。
9
+ - 服务器事件只有一个主脚本监听槽位,多次调用 `onEvent` 会覆盖旧监听。
10
+
11
+ ## 协议
12
+
13
+ 脚本上报数据时发送 JSON 文本帧:
14
+
15
+ ```json
16
+ {
17
+ "type": "scriptReport",
18
+ "event": "eventName",
19
+ "data": {}
20
+ }
21
+ ```
22
+
23
+ 服务器下发脚本事件时发送 JSON 文本帧:
24
+
25
+ ```json
26
+ {
27
+ "type": "scriptEvent",
28
+ "event": "eventName",
29
+ "data": {}
30
+ }
31
+ ```
32
+
33
+ `event` 是脚本和服务器约定的自定义事件名。`data` 在 Python 中是普通 `dict`,必须能被 JSON 序列化。
34
+
35
+ ## API 参考
36
+
37
+ ### connect - 连接云控服务器
38
+
39
+ ```python
40
+ def connect(url: str, deviceNo: str | None = None) -> bool
41
+ ```
42
+
43
+ **参数**
44
+
45
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
46
+ | ---------- | ------------ | -------- | -------------- | ---- |
47
+ | `url` | str | 是 | - | 完整 `ws://` 或 `wss://` 云控地址 |
48
+ | `deviceNo` | str 或 `None` | 否 | 已保存设备编号 | 连接时追加到 query 的设备编号 |
49
+
50
+ **返回值**
51
+
52
+ | 类型 | 描述 |
53
+ | ---- | ---- |
54
+ | bool | URL 校验通过且连接请求已提交时返回 `True` |
55
+
56
+ **说明**
57
+
58
+ - `connect` 只能在主脚本中调用。
59
+ - `connect` 只影响当前运行期云控连接,不会写入设置页的持久化云控配置。
60
+
61
+ **示例**
62
+
63
+ ```python
64
+ from kuaijs import cloud, logger
65
+
66
+ accepted = cloud.connect("wss://example.com/control", "device-001")
67
+ logger.info(f"云控连接请求: {accepted}")
68
+ ```
69
+
70
+ ### isConnected - 判断是否已连接
71
+
72
+ ```python
73
+ def isConnected() -> bool
74
+ ```
75
+
76
+ **返回值**
77
+
78
+ | 类型 | 描述 |
79
+ | ---- | ---- |
80
+ | bool | WebSocket 已连接时返回 `True` |
81
+
82
+ **示例**
83
+
84
+ ```python
85
+ from kuaijs import cloud
86
+
87
+ if cloud.isConnected():
88
+ cloud.report("status", {"value": "ready"})
89
+ ```
90
+
91
+ ### disconnect - 断开连接
92
+
93
+ ```python
94
+ def disconnect() -> None
95
+ ```
96
+
97
+ 断开云控 WebSocket 并停止自动重连。
98
+
99
+ **示例**
100
+
101
+ ```python
102
+ from kuaijs import cloud
103
+
104
+ cloud.disconnect()
105
+ ```
106
+
107
+ ### report - 上报数据
108
+
109
+ ```python
110
+ from typing import Any, Dict
111
+
112
+ def report(event: str, data: Dict[str, Any]) -> bool
113
+ ```
114
+
115
+ **参数**
116
+
117
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
118
+ | ------- | ---------------- | -------- | ------ | ---- |
119
+ | `event` | str | 是 | - | 自定义事件名 |
120
+ | `data` | `Dict[str, Any]` | 是 | - | 要上报的普通 dict 参数 |
121
+
122
+ **返回值**
123
+
124
+ | 类型 | 描述 |
125
+ | ---- | ---- |
126
+ | bool | 已连接且 JSON 文本帧已提交写出时返回 `True` |
127
+
128
+ **示例**
129
+
130
+ ```python
131
+ from kuaijs import cloud, logger
132
+
133
+ ok = cloud.report("taskFinished", {
134
+ "taskId": "A-1001",
135
+ "success": True,
136
+ "costMs": 1280,
137
+ })
138
+ logger.info(f"上报结果: {ok}")
139
+ ```
140
+
141
+ ### onEvent - 监听服务器事件
142
+
143
+ ```python
144
+ from typing import Any, Callable, Dict
145
+
146
+ def onEvent(callback: Callable[[str, Dict[str, Any]], None] | None) -> None
147
+ ```
148
+
149
+ 监听服务器发送的 `scriptEvent` 协议帧。传入 `None` 会取消主脚本监听。
150
+ 该回调注册接口只能在 Python 主脚本中调用,不能在线程脚本中调用。
151
+
152
+ **参数**
153
+
154
+ | 参数名 | 类型 | 是否必填 | 描述 |
155
+ | ---------- | --------------------------------- | -------- | ---- |
156
+ | `callback` | `Callable[[str, Dict[str, Any]], None]` 或 `None` | 是 | 事件处理函数,或传 `None` 取消监听 |
157
+
158
+ 事件处理函数参数:
159
+
160
+ | 字段 | 类型 | 描述 |
161
+ | ---- | ---- | ---- |
162
+ | `event` | str | 自定义事件名称 |
163
+ | `data` | dict | 服务端事件数据,普通 `dict` |
164
+
165
+ **示例**
166
+
167
+ ```python
168
+ from kuaijs import cloud, logger
169
+
170
+ def handle_event(event: str, data: dict):
171
+ if event == "startTask":
172
+ logger.info(f"任务参数: {data}")
173
+
174
+ cloud.onEvent(handle_event)
175
+ ```
@@ -5,7 +5,7 @@
5
5
  - 导入方式:
6
6
 
7
7
  ```python
8
- from kuaijs import action, hid, image, appleocr, paddleocr, yolo, yolocls, system, device, file, mysql, netcard, ime, media, hotupdate, tomatoocr, tts, ui, utils, node, pip, logger
8
+ from kuaijs import action, cloud, hid, image, appleocr, paddleocr, yolo, yolocls, system, device, file, mysql, netcard, ime, media, hotupdate, tomatoocr, tts, ui, utils, node, pip, logger
9
9
  ```
10
10
 
11
11
  ## 下载资源
@@ -75,14 +75,16 @@ UI 模块提供 WebView 相关功能,支持事件通信与 JavaScript 交互
75
75
  ```python
76
76
  from typing import Callable, Any
77
77
 
78
- def onEvent(callback: Callable[[str, Any], None]) -> None
78
+ def onEvent(callback: Callable[[str, Any], None] | None) -> None
79
79
  ```
80
80
 
81
+ 该回调注册接口只能在 Python 主脚本中调用,不能在线程脚本中调用。传入 `None` 会取消监听。
82
+
81
83
  **参数:**
82
84
 
83
85
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
84
86
  | ---------- | ---------------------------- | -------- | ------ | ------------------------------------ |
85
- | `callback` | `Callable[[str, Any], None]` | 是 | | 事件回调函数,用于处理来自网页的事件 |
87
+ | `callback` | `Callable[[str, Any], None]` 或 `None` | 是 | | 事件回调函数,用于处理来自网页的事件,传 `None` 取消监听 |
86
88
 
87
89
  **示例:**
88
90
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ms-vite-plugin",
3
- "version": "1.4.29",
3
+ "version": "1.4.30",
4
4
  "type": "commonjs",
5
5
  "license": "MIT",
6
6
  "publishConfig": {