ms-vite-plugin 1.4.8 → 1.4.10

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.
@@ -350,10 +350,9 @@ function formatRuntimeStatusEntry(entry) {
350
350
  ? "运行中"
351
351
  : "未运行"
352
352
  : "未知"}`,
353
- `总内存: ${formatRuntimeMetricText(memory.total, " MB")}`,
354
- `可用: ${formatRuntimeMetricText(memory.available, " MB")}`,
355
- `已用: ${formatRuntimeMetricText(memory.used, " MB")}`,
356
- `占用: ${formatRuntimeMetricText(memory.usagePercentage, "%")}`,
353
+ `系统: ${formatRuntimeMetricText(memory.systemUsed, " MB")}/${formatRuntimeMetricText(memory.total, " MB")}`,
354
+ `系统占用: ${formatRuntimeMetricText(memory.usagePercentage, "%")}`,
355
+ `应用: ${formatRuntimeMetricText(memory.used, " MB")}`,
357
356
  ].join(" | ");
358
357
  }
359
358
  /**
@@ -342,6 +342,55 @@ if (getAgentFastMode()) {
342
342
  }
343
343
  ```
344
344
 
345
+ ### setCpuAutoThrottle
346
+
347
+ 设置脚本 CPU 自动限流。默认开启。开启后,脚本 API 在 CPU 占用接近系统杀进程阈值时会轻微让步,降低被系统终止的风险。
348
+
349
+ ```typescript
350
+ function setCpuAutoThrottle(enabled: boolean): boolean;
351
+ ```
352
+
353
+ **参数:**
354
+
355
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
356
+ | --------- | --------- | -------- | ------ | ---------------- |
357
+ | `enabled` | `boolean` | 是 | - | 是否开启自动限流 |
358
+
359
+ **返回值:**
360
+
361
+ | 类型 | 描述 |
362
+ | --------- | -------------------- |
363
+ | `boolean` | 实际是否开启自动限流 |
364
+
365
+ **示例:**
366
+
367
+ ```javascript
368
+ const enabled = setCpuAutoThrottle(true);
369
+ logi(`CPU 自动限流: ${enabled}`);
370
+ ```
371
+
372
+ ### getCpuAutoThrottle
373
+
374
+ 获取脚本 CPU 自动限流当前状态。默认开启。
375
+
376
+ ```typescript
377
+ function getCpuAutoThrottle(): boolean;
378
+ ```
379
+
380
+ **返回值:**
381
+
382
+ | 类型 | 描述 |
383
+ | --------- | -------------------- |
384
+ | `boolean` | 当前是否开启自动限流 |
385
+
386
+ **示例:**
387
+
388
+ ```javascript
389
+ if (getCpuAutoThrottle()) {
390
+ logi("CPU 自动限流已开启");
391
+ }
392
+ ```
393
+
345
394
  ### setStopCallback
346
395
 
347
396
  设置停止回调函数(仅主线程调用)。
package/docs/api/ime.md CHANGED
@@ -35,31 +35,6 @@ if (ime.isOk()) {
35
35
  }
36
36
  ```
37
37
 
38
- ### autoSwitchApiKeyboard - 自动切换到 API 键盘。
39
-
40
- ```typescript
41
- function autoSwitchApiKeyboard(): boolean;
42
- ```
43
-
44
- **返回值:**
45
-
46
- | 类型 | 描述 |
47
- | --------- | ------------------------------------------ |
48
- | `boolean` | 是否成功切换并连接到 API 键盘,成功为 true |
49
-
50
- - 该方法仅在系统设置中添加了快点JS API键盘 并且已授权完全访问权限时有效。
51
-
52
- **示例:**
53
-
54
- ```typescript
55
- // 自动切换到 API 键盘(如未弹出会尝试切换)
56
- if (ime.autoSwitchApiKeyboard()) {
57
- logi("已切换到 API 键盘");
58
- } else {
59
- logi("切换失败,请检查键盘设置和完全访问权限");
60
- }
61
- ```
62
-
63
38
  ## 文本获取和清除
64
39
 
65
40
  ### getText - 获取当前输入框的文本内容。
package/docs/api/pip.md CHANGED
@@ -1,81 +1,15 @@
1
1
  # 悬浮窗模块 (PIP)
2
2
 
3
- 悬浮窗模块提供了画中画(Picture in Picture)功能,允许在应用中显示悬浮的日志窗口,支持自定义样式。
3
+ 悬浮窗模块提供画中画(Picture in Picture)日志窗口能力。
4
4
 
5
5
  ## 功能特性
6
6
 
7
- - 🖼️ **悬浮窗显示** - 支持在屏幕上显示悬浮的日志窗口
8
- - 🎨 **自定义样式** - 可配置窗口大小、字体、颜色等
9
- - 🎮 **脚本控制配置** - 保留脚本控制配置接口,Video Call PiP 链路不再提供播放/暂停按钮回调
10
-
11
- ## 接口定义
12
-
13
- ### LogViewParams - 悬浮窗参数配置
14
-
15
- ```typescript
16
- interface LogViewParams {
17
- /**
18
- * 悬浮窗内容宽度,默认 300
19
- */
20
- width: number;
21
- /**
22
- * 悬浮窗内容高度,支持最低 0.1pt,实际显示由 iOS Video Call PiP 决定
23
- */
24
- height: number;
25
- /**
26
- * 日志的字体大小
27
- */
28
- textSize: number;
29
- /**
30
- * 日志的文字颜色,格式如 #FFFFFF
31
- */
32
- textColor: string;
33
- /**
34
- * 日志的背景颜色,格式如 #000000
35
- */
36
- backgroundColor: string;
37
- }
38
- ```
39
-
40
- **参数说明:**
41
-
42
- | 参数 | 类型 | 是否必填 | 默认值 | 描述 |
43
- | ----------------- | ------ | -------- | ------ | --------------------------------------- |
44
- | `width` | number | 是 | | 悬浮窗内容宽度,默认 300 |
45
- | `height` | number | 是 | | 悬浮窗内容高度,支持最低 0.1pt |
46
- | `textSize` | number | 是 | | 日志文字大小(像素) |
47
- | `textColor` | string | 是 | | 文字颜色,十六进制格式(如:`#FFFFFF`) |
48
- | `backgroundColor` | string | 是 | | 背景颜色,十六进制格式(如:`#000000`) |
7
+ - **模式切换**:切换日志、保活和关闭三种悬浮窗模式
8
+ - **状态查询**:判断悬浮窗是否正在显示
9
+ - **识别标记**:日志窗口左上角默认显示高对比标记,可用于截图识别悬浮窗位置
49
10
 
50
11
  ## API 方法
51
12
 
52
- ### setLogViewParams - 设置悬浮窗显示参数
53
-
54
- ```typescript
55
- function setLogViewParams(params: LogViewParams): void;
56
- ```
57
-
58
- 设置悬浮窗日志窗口的显示参数。显示前调用会影响首次高度;显示后再次调用会同步更新当前 Video Call PiP 内容尺寸。
59
-
60
- **参数:**
61
-
62
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
63
- | -------- | ------------- | -------- | ------ | ---------------------- |
64
- | `params` | LogViewParams | 是 | | 包含显示参数的配置对象 |
65
-
66
- **示例:**
67
-
68
- ```typescript
69
- // 配置悬浮窗参数
70
- pip.setLogViewParams({
71
- width: 300,
72
- height: 400,
73
- textSize: 14,
74
- textColor: "#FFFFFF",
75
- backgroundColor: "#000000",
76
- });
77
- ```
78
-
79
13
  ### isPipActive - 判断悬浮窗是否打开
80
14
 
81
15
  ```typescript
@@ -93,133 +27,87 @@ function isPipActive(): boolean;
93
27
  **示例:**
94
28
 
95
29
  ```typescript
96
- // 检查悬浮窗是否打开
97
30
  const isActive = pip.isPipActive();
98
31
  if (isActive) {
99
32
  logi("悬浮窗当前已打开");
100
- } else {
101
- logi("悬浮窗当前未打开");
102
33
  }
103
34
  ```
104
35
 
105
- ### showLogWindow - 显示日志窗口
36
+ ### switchToLogMode - 切换到日志模式
106
37
 
107
38
  ```typescript
108
- function showLogWindow(): boolean;
39
+ function switchToLogMode(): boolean;
109
40
  ```
110
41
 
111
- 显示悬浮窗日志窗口。应用必须在前台才可调用
42
+ 切换到日志模式并尝试显示悬浮窗日志窗口。首次显示悬浮窗时 App 必须在前台。
112
43
 
113
44
  **返回值:**
114
45
 
115
- | 类型 | 描述 |
116
- | --------- | --------------------------------- |
117
- | `boolean` | `true` 代表成功,`false` 代表失败 |
46
+ | 类型 | 描述 |
47
+ | --------- | ---------------------- |
48
+ | `boolean` | `true` 代表已提交请求 |
118
49
 
119
50
  **示例:**
120
51
 
121
52
  ```typescript
122
- // 将应用切入前台
123
53
  takeMeToFront();
124
- // 显示悬浮窗
125
- const success = pip.showLogWindow();
126
- if (success) {
127
- logi("悬浮窗显示成功");
128
- } else {
129
- logi("悬浮窗显示失败,请检查权限设置");
130
- }
54
+ const success = pip.switchToLogMode();
131
55
  ```
132
56
 
133
- ### closeLogWindow - 关闭日志窗口
57
+ ### switchToKeepAliveMode - 切换到保活模式
134
58
 
135
59
  ```typescript
136
- function closeLogWindow(): boolean;
60
+ function switchToKeepAliveMode(): boolean;
137
61
  ```
138
62
 
139
- 关闭悬浮窗日志窗口。应用必须在前台才可调用。
63
+ 切换到保活模式并尝试显示极小高度悬浮窗。首次显示悬浮窗时 App 必须在前台。
140
64
 
141
65
  **返回值:**
142
66
 
143
- | 类型 | 描述 |
144
- | --------- | --------------------------------- |
145
- | `boolean` | `true` 代表成功,`false` 代表失败 |
67
+ | 类型 | 描述 |
68
+ | --------- | ---------------------- |
69
+ | `boolean` | `true` 代表已提交请求 |
146
70
 
147
71
  **示例:**
148
72
 
149
73
  ```typescript
150
- // 将应用切入前台
151
74
  takeMeToFront();
152
- // 关闭悬浮窗
153
- const success = pip.closeLogWindow();
154
- if (success) {
155
- logi("悬浮窗关闭成功");
156
- } else {
157
- logi("悬浮窗关闭失败");
158
- }
75
+ const success = pip.switchToKeepAliveMode();
159
76
  ```
160
77
 
161
- ### setPipCtrlScript - 设置脚本控制权限
78
+ ### switchToOffMode - 切换到关闭模式
162
79
 
163
80
  ```typescript
164
- function setPipCtrlScript(ctrl: boolean): boolean;
81
+ function switchToOffMode(): boolean;
165
82
  ```
166
83
 
167
- 设置是否允许悬浮窗控制脚本的启停。当前 Video Call PiP 链路仅保存配置,不再提供播放/暂停按钮回调。
168
-
169
- **参数:**
170
-
171
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
172
- | ------ | ------- | -------- | ------ | ------------------------------------------- |
173
- | `ctrl` | boolean | 是 | | `true` 代表允许控制,`false` 代表不允许控制 |
174
-
175
- **示例:**
84
+ 切换到关闭模式并关闭悬浮窗。
176
85
 
177
86
  **返回值:**
178
87
 
179
- | 类型 | 描述 |
180
- | --------- | --------------------------------- |
181
- | `boolean` | `true` 代表成功,`false` 代表失败 |
88
+ | 类型 | 描述 |
89
+ | --------- | ---------------------- |
90
+ | `boolean` | `true` 代表已提交请求 |
182
91
 
183
92
  **示例:**
184
93
 
185
94
  ```typescript
186
- // 允许悬浮窗控制脚本
187
- const ok1 = pip.setPipCtrlScript(true);
188
- // 禁止悬浮窗控制脚本
189
- const ok2 = pip.setPipCtrlScript(false);
95
+ const success = pip.switchToOffMode();
190
96
  ```
191
97
 
192
98
  ## 完整使用示例
193
99
 
194
100
  ```typescript
195
- // 将应用切入前台
196
101
  takeMeToFront();
197
- // 1. 配置悬浮窗参数
198
- pip.setLogViewParams({
199
- width: 350,
200
- height: 500,
201
- textSize: 16,
202
- textColor: "#00FF00", // 绿色文字
203
- backgroundColor: "#1A1A1A", // 深灰色背景
204
- });
205
-
206
- // 2. 保存悬浮窗控制脚本配置
207
- pip.setPipCtrlScript(true);
208
-
209
- // 3. 显示悬浮窗
210
- const showResult = pip.showLogWindow();
102
+ pip.switchToLogMode();
211
103
  ```
212
104
 
213
105
  ## 注意事项
214
106
 
215
- 1. **前台限制**:所有悬浮窗操作都必须在应用前台状态下进行
107
+ 1. **前台限制**:首次切换到日志模式或保活模式并启动悬浮窗时,App 必须在前台;悬浮窗已启动后可以继续切换日志/保活模式
216
108
  2. **设备兼容性**:仅支持 iOS 15+ 且具备画中画功能的设备
217
- 3. **尺寸限制**:`height` 支持最低 0.1pt,内部最高限制为 220pt;实际悬浮窗显示仍由 iOS Video Call PiP 决定
218
- 4. **配置时机**:`setLogViewParams()` 可在显示前或显示后调用,显示后会同步更新当前内容尺寸
219
- 5. **颜色格式**:颜色值必须使用十六进制格式(如:`#FFFFFF`)
220
- 6. **尺寸适配**:iOS 系统会对画中画窗口的尺寸进行限制和自动调整,实际显示的画中画窗口大小可能与设置的 `width` 和 `height` 参数不完全一致
221
- 7. **内容渲染**:画中画内容渲染会自动适配系统分配的实际窗口尺寸,而不是使用配置的尺寸参数
222
- 8. **脚本控制**:Video Call PiP 链路不再提供播放/暂停按钮回调,`setPipCtrlScript(true)` 当前仅保存配置
109
+ 3. **系统限制**:悬浮窗位置和实际显示尺寸由 iOS 管理
110
+ 4. **识别标记**:日志窗口左上角默认包含识别标记,便于通过截图识别悬浮窗位置
223
111
 
224
112
  ## 故障排除
225
113
 
@@ -227,15 +115,4 @@ const showResult = pip.showLogWindow();
227
115
 
228
116
  - 确认设备支持悬浮窗功能
229
117
  - 检查悬浮窗权限是否已开启
230
- - 确认参数配置是否正确(高度不低于 0.1pt)
231
-
232
- ### 悬浮窗显示异常
233
-
234
- - 检查颜色值格式是否正确
235
- - 确认字体大小设置是否合理
236
- - 验证窗口尺寸是否在有效范围内
237
-
238
- ### 脚本控制无效
239
-
240
- - 当前 Video Call PiP 链路不再提供播放/暂停按钮回调
241
- - `setPipCtrlScript(true)` 仅保存配置,不会直接驱动脚本启停
118
+ - 确认应用当前在前台
@@ -10,6 +10,7 @@
10
10
  - **URL 操作**: 打开网页链接或应用 URL Scheme
11
11
  - **系统通知**: 发送系统通知消息
12
12
  - **内存管理**: 获取内存使用信息
13
+ - **CPU 管理**: 获取 CPU 使用率
13
14
  - **Agent 服务**: 启动 快点 Agent 服务
14
15
 
15
16
  ## API 参考
@@ -427,37 +428,35 @@ function getMemoryInfo(): {
427
428
  used: number;
428
429
  available: number;
429
430
  total: number;
431
+ systemUsed: number;
430
432
  usagePercentage: number;
431
433
  };
432
434
  ```
433
435
 
434
436
  **返回值:**
435
437
 
436
- | 类型 | 描述 |
437
- | ----------------- | ---------------------- |
438
- | `used` | 已使用内存(单位:MB) |
439
- | `available` | 可用内存(单位:MB) |
440
- | `total` | 总内存(单位:MB) |
441
- | `usagePercentage` | 内存使用率(百分比) |
438
+ | 类型 | 描述 |
439
+ | ----------------- | ---------------------------- |
440
+ | `used` | 当前应用占用(单位:MB) |
441
+ | `available` | 系统可用内存(单位:MB) |
442
+ | `total` | 系统总内存(单位:MB) |
443
+ | `systemUsed` | 系统已用内存(单位:MB) |
444
+ | `usagePercentage` | 系统内存占用率(百分比) |
442
445
 
443
446
  **说明:**
444
447
 
445
- 该方法返回设备的完整内存使用信息,包括已使用内存、可用内存、总内存和使用率。
448
+ 该方法返回当前应用占用和系统内存概况。`usagePercentage` 表示系统整体占用率。
446
449
 
447
450
  **示例:**
448
451
 
449
452
  ```javascript
450
- // 获取完整内存信息
451
453
  const memInfo = system.getMemoryInfo();
452
- logi(`内存使用情况:`);
453
- logi(`已使用: ${memInfo.used}MB`);
454
- logi(`可用: ${memInfo.available}MB`);
455
- logi(`总计: ${memInfo.total}MB`);
456
- logi(`使用率: ${memInfo.usagePercentage}%`);
454
+ logi(`应用占用: ${memInfo.used}MB`);
455
+ logi(`系统内存: ${memInfo.systemUsed}/${memInfo.total}MB`);
456
+ logi(`系统占用: ${memInfo.usagePercentage}%`);
457
457
 
458
- // 检查内存使用率
459
458
  if (memInfo.usagePercentage > 80) {
460
- logw("内存使用率过高,建议清理内存");
459
+ logw("系统内存占用较高");
461
460
  }
462
461
  ```
463
462
 
@@ -552,6 +551,59 @@ const memoryInfo = system.getMemoryInfo();
552
551
  logi(`内存信息: 已使用 ${memoryInfo.used}MB / 总计 ${memoryInfo.total}MB`);
553
552
  ```
554
553
 
554
+ #### getSystemUsedMemory - 获取系统已用内存。
555
+
556
+ ```typescript
557
+ function getSystemUsedMemory(): number;
558
+ ```
559
+
560
+ **返回值:**
561
+
562
+ | 类型 | 描述 |
563
+ | -------- | -------------------------- |
564
+ | `number` | 系统已用内存大小(单位:MB) |
565
+
566
+ **说明:**
567
+
568
+ 该方法返回系统物理内存的已使用量,计算方式为系统总内存减去可用内存,与 `getMemoryInfo()` 返回的 `systemUsed` 一致。
569
+
570
+ **示例:**
571
+
572
+ ```javascript
573
+ // 获取系统已用内存
574
+ const systemUsed = system.getSystemUsedMemory();
575
+ logi(`系统已用内存: ${systemUsed}MB`);
576
+
577
+ // 与 getMemoryInfo 对比
578
+ const memoryInfo = system.getMemoryInfo();
579
+ logi(`系统已用: ${systemUsed}MB, getMemoryInfo: ${memoryInfo.systemUsed}MB`);
580
+ ```
581
+
582
+ ### CPU 管理
583
+
584
+ #### getCpuUsage - 获取 CPU 使用率。
585
+
586
+ ```typescript
587
+ function getCpuUsage(): number;
588
+ ```
589
+
590
+ **返回值:**
591
+
592
+ | 类型 | 描述 |
593
+ | -------- | ---------------------------- |
594
+ | `number` | 当前应用 CPU 使用率(百分比) |
595
+
596
+ **示例:**
597
+
598
+ ```javascript
599
+ const cpuUsage = system.getCpuUsage();
600
+ logi(`CPU 使用率: ${cpuUsage}%`);
601
+
602
+ if (cpuUsage > 80) {
603
+ logw("CPU 使用率较高,建议降低脚本负载");
604
+ }
605
+ ```
606
+
555
607
  ### 快点 Agent 服务
556
608
 
557
609
  #### startAgent - 启动 快点 Agent 服务。
@@ -343,6 +343,55 @@ if ($获取Agent快速模式()) {
343
343
  }
344
344
  ```
345
345
 
346
+ ### $设置CPU自动限流
347
+
348
+ 设置脚本 CPU 自动限流。默认开启。开启后,脚本 API 在 CPU 占用接近系统杀进程阈值时会轻微让步,降低被系统终止的风险。
349
+
350
+ ```typescript
351
+ declare function $设置CPU自动限流(是否开启: 布尔值): 布尔值;
352
+ ```
353
+
354
+ **参数:**
355
+
356
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
357
+ | ---------- | -------- | -------- | ------ | ---------------- |
358
+ | `是否开启` | `布尔值` | 是 | - | 是否开启自动限流 |
359
+
360
+ **返回值:**
361
+
362
+ | 类型 | 描述 |
363
+ | -------- | -------------------- |
364
+ | `布尔值` | 实际是否开启自动限流 |
365
+
366
+ **示例:**
367
+
368
+ ```javascript
369
+ const 是否开启 = $设置CPU自动限流(true);
370
+ $打印信息日志(`CPU 自动限流: ${是否开启}`);
371
+ ```
372
+
373
+ ### $获取CPU自动限流
374
+
375
+ 获取脚本 CPU 自动限流当前状态。默认开启。
376
+
377
+ ```typescript
378
+ declare function $获取CPU自动限流(): 布尔值;
379
+ ```
380
+
381
+ **返回值:**
382
+
383
+ | 类型 | 描述 |
384
+ | -------- | -------------------- |
385
+ | `布尔值` | 当前是否开启自动限流 |
386
+
387
+ **示例:**
388
+
389
+ ```javascript
390
+ if ($获取CPU自动限流()) {
391
+ $打印信息日志("CPU 自动限流已开启");
392
+ }
393
+ ```
394
+
346
395
  ### $设置停止回调
347
396
 
348
397
  设置停止回调函数(仅主线程调用)。
package/docs/apicn/ime.md CHANGED
@@ -35,31 +35,6 @@ if ($输入法.是否可用()) {
35
35
  }
36
36
  ```
37
37
 
38
- ### 自动切换到API键盘 - 自动切换到 API 键盘。
39
-
40
- ```typescript
41
- function 自动切换到API键盘(): 布尔值;
42
- ```
43
-
44
- **返回值:**
45
-
46
- | 类型 | 描述 |
47
- | -------- | ------------------------------------------ |
48
- | `布尔值` | 是否成功切换并连接到 API 键盘,成功为 true |
49
-
50
- - 该方法仅在系统设置中添加了快点JS API键盘 并且已授权完全访问权限时有效。
51
-
52
- **示例:**
53
-
54
- ```typescript
55
- // 自动切换到 API 键盘(如未弹出会尝试切换)
56
- if ($输入法.自动切换到API键盘()) {
57
- $打印信息日志("已切换到 API 键盘");
58
- } else {
59
- $打印信息日志("切换失败,请检查键盘设置和完全访问权限");
60
- }
61
- ```
62
-
63
38
  ## 文本获取和清除
64
39
 
65
40
  ### 获取文本 - 获取当前输入框的文本内容。