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.
package/docs/apicn/pip.md CHANGED
@@ -1,81 +1,15 @@
1
1
  # 悬浮窗模块 ($悬浮窗)
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
- ### 日志窗口参数
14
-
15
- ```typescript
16
- interface 日志窗口参数 {
17
- /**
18
- * 悬浮窗内容宽度,默认 300
19
- */
20
- width: 数字;
21
- /**
22
- * 悬浮窗内容高度,支持最低 0.1pt,实际显示由 iOS Video Call PiP 决定
23
- */
24
- height: 数字;
25
- /**
26
- * 日志的字体大小
27
- */
28
- textSize: 数字;
29
- /**
30
- * 日志的文字颜色,格式如 #FFFFFF
31
- */
32
- textColor: 字符串;
33
- /**
34
- * 日志的背景颜色,格式如 #000000
35
- */
36
- backgroundColor: 字符串;
37
- }
38
- ```
39
-
40
- **参数说明:**
41
-
42
- | 参数 | 类型 | 是否必填 | 默认值 | 描述 |
43
- | ----------------- | ------ | -------- | ------ | --------------------------------------- |
44
- | `width` | 数字 | 是 | | 悬浮窗内容宽度,默认 300 |
45
- | `height` | 数字 | 是 | | 悬浮窗内容高度,支持最低 0.1pt |
46
- | `textSize` | 数字 | 是 | | 日志文字大小(像素) |
47
- | `textColor` | 字符串 | 是 | | 文字颜色,十六进制格式(如:`#FFFFFF`) |
48
- | `backgroundColor` | 字符串 | 是 | | 背景颜色,十六进制格式(如:`#000000`) |
7
+ - **模式切换**:切换日志、保活和关闭三种悬浮窗模式
8
+ - **状态查询**:判断悬浮窗是否正在显示
9
+ - **识别标记**:日志窗口左上角默认显示高对比标记,可用于截图识别悬浮窗位置
49
10
 
50
11
  ## API 方法
51
12
 
52
- ### 设置日志视图参数
53
-
54
- ```typescript
55
- function 设置日志视图参数(参数: 日志窗口参数): 无返回值;
56
- ```
57
-
58
- 设置悬浮窗日志窗口的显示参数。显示前调用会影响首次高度;显示后再次调用会同步更新当前 Video Call PiP 内容尺寸。
59
-
60
- **参数:**
61
-
62
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
63
- | ------ | ------------ | -------- | ------ | ---------------------- |
64
- | `参数` | 日志窗口参数 | 是 | | 包含显示参数的配置对象 |
65
-
66
- **示例:**
67
-
68
- ```typescript
69
- // 配置悬浮窗参数
70
- $悬浮窗.设置日志视图参数({
71
- width: 300,
72
- height: 400,
73
- textSize: 14,
74
- textColor: "#FFFFFF",
75
- backgroundColor: "#000000",
76
- });
77
- ```
78
-
79
13
  ### 是否显示 - 判断悬浮窗是否打开
80
14
 
81
15
  ```typescript
@@ -93,133 +27,87 @@ function 是否显示(): 布尔值;
93
27
  **示例:**
94
28
 
95
29
  ```typescript
96
- // 检查悬浮窗是否打开
97
30
  const 是否显示 = $悬浮窗.是否显示();
98
31
  if (是否显示) {
99
32
  $打印信息日志("悬浮窗当前已打开");
100
- } else {
101
- $打印信息日志("悬浮窗当前未打开");
102
33
  }
103
34
  ```
104
35
 
105
- ### 显示日志窗口
36
+ ### 切换到日志模式
106
37
 
107
38
  ```typescript
108
- function 显示日志窗口(): 布尔值;
39
+ function 切换到日志模式(): 布尔值;
109
40
  ```
110
41
 
111
- 显示悬浮窗日志窗口。应用必须在前台才可调用
42
+ 切换到日志模式并尝试显示悬浮窗日志窗口。首次显示悬浮窗时 App 必须在前台。
112
43
 
113
44
  **返回值:**
114
45
 
115
- | 类型 | 描述 |
116
- | -------- | --------------------------------- |
117
- | `布尔值` | `true` 代表成功,`false` 代表失败 |
46
+ | 类型 | 描述 |
47
+ | -------- | ---------------------- |
48
+ | `布尔值` | `true` 代表已提交请求 |
118
49
 
119
50
  **示例:**
120
51
 
121
52
  ```typescript
122
- // 将应用切入前台
123
53
  $APP切入前台();
124
- // 显示悬浮窗
125
- const 是否成功 = $悬浮窗.显示日志窗口();
126
- if (是否成功) {
127
- $打印信息日志("悬浮窗显示成功");
128
- } else {
129
- $打印信息日志("悬浮窗显示失败,请检查权限设置");
130
- }
54
+ const 是否成功 = $悬浮窗.切换到日志模式();
131
55
  ```
132
56
 
133
- ### 关闭日志窗口
57
+ ### 切换到保活模式
134
58
 
135
59
  ```typescript
136
- function 关闭日志窗口(): 布尔值;
60
+ function 切换到保活模式(): 布尔值;
137
61
  ```
138
62
 
139
- 关闭悬浮窗日志窗口。应用必须在前台才可调用。
63
+ 切换到保活模式并尝试显示极小高度悬浮窗。首次显示悬浮窗时 App 必须在前台。
140
64
 
141
65
  **返回值:**
142
66
 
143
- | 类型 | 描述 |
144
- | -------- | --------------------------------- |
145
- | `布尔值` | `true` 代表成功,`false` 代表失败 |
67
+ | 类型 | 描述 |
68
+ | -------- | ---------------------- |
69
+ | `布尔值` | `true` 代表已提交请求 |
146
70
 
147
71
  **示例:**
148
72
 
149
73
  ```typescript
150
- // 将应用切入前台
151
74
  $APP切入前台();
152
- // 关闭悬浮窗
153
- const 是否成功 = $悬浮窗.关闭日志窗口();
154
- if (是否成功) {
155
- $打印信息日志("悬浮窗关闭成功");
156
- } else {
157
- $打印信息日志("悬浮窗关闭失败");
158
- }
75
+ const 是否成功 = $悬浮窗.切换到保活模式();
159
76
  ```
160
77
 
161
- ### 设置是否允许控制脚本启停
78
+ ### 切换到关闭模式
162
79
 
163
80
  ```typescript
164
- function 设置是否允许控制脚本启停(是否允许: 布尔值): 布尔值;
81
+ function 切换到关闭模式(): 布尔值;
165
82
  ```
166
83
 
167
- 设置是否允许悬浮窗控制脚本的启停。当前 Video Call PiP 链路仅保存配置,不再提供播放/暂停按钮回调。
168
-
169
- **参数:**
170
-
171
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
172
- | ---------- | ------ | -------- | ------ | ------------------------------------------- |
173
- | `是否允许` | 布尔值 | 是 | | `true` 代表允许控制,`false` 代表不允许控制 |
174
-
175
- **示例:**
84
+ 切换到关闭模式并关闭悬浮窗。
176
85
 
177
86
  **返回值:**
178
87
 
179
- | 类型 | 描述 |
180
- | -------- | --------------------------------- |
181
- | `布尔值` | `true` 代表成功,`false` 代表失败 |
88
+ | 类型 | 描述 |
89
+ | -------- | ---------------------- |
90
+ | `布尔值` | `true` 代表已提交请求 |
182
91
 
183
92
  **示例:**
184
93
 
185
94
  ```typescript
186
- // 允许悬浮窗控制脚本
187
- const 是否成功1 = $悬浮窗.设置是否允许控制脚本启停(true);
188
- // 禁止悬浮窗控制脚本
189
- const 是否成功2 = $悬浮窗.设置是否允许控制脚本启停(false);
95
+ const 是否成功 = $悬浮窗.切换到关闭模式();
190
96
  ```
191
97
 
192
98
  ## 完整使用示例
193
99
 
194
100
  ```typescript
195
- // 将应用切入前台
196
101
  $APP切入前台();
197
- // 1. 配置悬浮窗参数
198
- $悬浮窗.设置日志视图参数({
199
- width: 350,
200
- height: 500,
201
- textSize: 16,
202
- textColor: "#00FF00", // 绿色文字
203
- backgroundColor: "#1A1A1A", // 深灰色背景
204
- });
205
-
206
- // 2. 保存悬浮窗控制脚本配置
207
- $悬浮窗.设置是否允许控制脚本启停(true);
208
-
209
- // 3. 显示悬浮窗
210
- const showResult = $悬浮窗.显示日志窗口();
102
+ $悬浮窗.切换到日志模式();
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. **配置时机**:`设置日志视图参数()` 可在显示前或显示后调用,显示后会同步更新当前内容尺寸
219
- 5. **颜色格式**:颜色值必须使用十六进制格式(如:`#FFFFFF`)
220
- 6. **尺寸适配**:iOS 系统会对画中画窗口的尺寸进行限制和自动调整,实际显示的画中画窗口大小可能与设置的 `width` 和 `height` 参数不完全一致
221
- 7. **内容渲染**:画中画内容渲染会自动适配系统分配的实际窗口尺寸,而不是使用配置的尺寸参数
222
- 8. **脚本控制**:Video Call PiP 链路不再提供播放/暂停按钮回调,`设置是否允许控制脚本启停(true)` 当前仅保存配置
109
+ 3. **系统限制**:悬浮窗位置和实际显示尺寸由 iOS 管理
110
+ 4. **识别标记**:日志窗口左上角默认包含识别标记,便于通过截图识别悬浮窗位置
223
111
 
224
112
  ## 故障排除
225
113
 
@@ -227,15 +115,4 @@ const showResult = $悬浮窗.显示日志窗口();
227
115
 
228
116
  - 确认设备支持悬浮窗功能
229
117
  - 检查悬浮窗权限是否已开启
230
- - 确认参数配置是否正确(高度不低于 0.1pt)
231
-
232
- ### 悬浮窗显示异常
233
-
234
- - 检查颜色值格式是否正确
235
- - 确认字体大小设置是否合理
236
- - 验证窗口尺寸是否在有效范围内
237
-
238
- ### 脚本控制无效
239
-
240
- - 当前 Video Call PiP 链路不再提供播放/暂停按钮回调
241
- - `设置是否允许控制脚本启停(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 获取内存使用信息(): {
427
428
  used: 数字;
428
429
  available: 数字;
429
430
  total: 数字;
431
+ systemUsed: 数字;
430
432
  usagePercentage: 数字;
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 = $系统.获取内存使用信息();
452
- $打印信息日志(`内存使用情况:`);
453
- $打印信息日志(`已使用: ${memInfo.used}MB`);
454
- $打印信息日志(`可用: ${memInfo.available}MB`);
455
- $打印信息日志(`总计: ${memInfo.total}MB`);
456
- $打印信息日志(`使用率: ${memInfo.usagePercentage}%`);
454
+ $打印信息日志(`应用占用: ${memInfo.used}MB`);
455
+ $打印信息日志(`系统内存: ${memInfo.systemUsed}/${memInfo.total}MB`);
456
+ $打印信息日志(`系统占用: ${memInfo.usagePercentage}%`);
457
457
 
458
- // 检查内存使用率
459
458
  if (memInfo.usagePercentage > 80) {
460
- $打印警告日志("内存使用率过高,建议清理内存");
459
+ $打印警告日志("系统内存占用较高");
461
460
  }
462
461
  ```
463
462
 
@@ -554,6 +553,61 @@ $打印信息日志(
554
553
  );
555
554
  ```
556
555
 
556
+ #### 获取系统已用内存 - 获取系统物理内存已使用量。
557
+
558
+ ```typescript
559
+ function 获取系统已用内存(): 数字;
560
+ ```
561
+
562
+ **返回值:**
563
+
564
+ | 参数名 | 类型 | 描述 |
565
+ | ------------ | ---- | -------------------------- |
566
+ | `systemUsed` | 数字 | 系统已用内存大小(单位:MB) |
567
+
568
+ **说明:**
569
+
570
+ 该方法返回系统物理内存的已使用量,计算方式为系统总内存减去可用内存,与 `获取内存使用信息()` 返回的 `systemUsed` 一致。
571
+
572
+ **示例:**
573
+
574
+ ```javascript
575
+ // 获取系统已用内存
576
+ const 系统已用内存 = $系统.获取系统已用内存();
577
+ $打印信息日志(`系统已用内存: ${系统已用内存}MB`);
578
+
579
+ // 与 获取内存使用信息 对比
580
+ const 内存信息 = $系统.获取内存使用信息();
581
+ $打印信息日志(
582
+ `系统已用: ${系统已用内存}MB, 内存信息: ${内存信息.systemUsed}MB`,
583
+ );
584
+ ```
585
+
586
+ ### CPU 管理
587
+
588
+ #### 获取CPU使用率 - 获取 CPU 使用率。
589
+
590
+ ```typescript
591
+ function 获取CPU使用率(): 数字;
592
+ ```
593
+
594
+ **返回值:**
595
+
596
+ | 类型 | 描述 |
597
+ | ------ | ---------------------------- |
598
+ | `数字` | 当前应用 CPU 使用率(百分比) |
599
+
600
+ **示例:**
601
+
602
+ ```javascript
603
+ const CPU使用率 = $系统.获取CPU使用率();
604
+ $打印信息日志(`CPU 使用率: ${CPU使用率}%`);
605
+
606
+ if (CPU使用率 > 80) {
607
+ $打印警告日志("CPU 使用率较高,建议降低脚本负载");
608
+ }
609
+ ```
610
+
557
611
  ### 快点 Agent 服务
558
612
 
559
613
  #### 启动 快点 Agent 服务
@@ -101,6 +101,58 @@ if g.getAgentFastMode():
101
101
  print("Agent 快速模式已开启")
102
102
  ```
103
103
 
104
+ #### `setCpuAutoThrottle` - 设置脚本 CPU 自动限流
105
+
106
+ 默认开启。开启后,脚本 API 在 CPU 占用接近系统杀进程阈值时会轻微让步,降低被系统终止的风险。
107
+
108
+ ```python
109
+ def setCpuAutoThrottle(enabled: bool) -> bool
110
+ ```
111
+
112
+ **参数:**
113
+
114
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
115
+ | --------- | ------ | -------- | ------ | ---------------- |
116
+ | `enabled` | `bool` | 是 | - | 是否开启自动限流 |
117
+
118
+ **返回值:**
119
+
120
+ | 类型 | 描述 |
121
+ | ------ | -------------------- |
122
+ | `bool` | 实际是否开启自动限流 |
123
+
124
+ **示例:**
125
+
126
+ ```python
127
+ from kuaijs import g
128
+
129
+ enabled = g.setCpuAutoThrottle(True)
130
+ print(f"CPU 自动限流: {enabled}")
131
+ ```
132
+
133
+ #### `getCpuAutoThrottle` - 获取脚本 CPU 自动限流
134
+
135
+ 默认开启。
136
+
137
+ ```python
138
+ def getCpuAutoThrottle() -> bool
139
+ ```
140
+
141
+ **返回值:**
142
+
143
+ | 类型 | 描述 |
144
+ | ------ | -------------------- |
145
+ | `bool` | 当前是否开启自动限流 |
146
+
147
+ **示例:**
148
+
149
+ ```python
150
+ from kuaijs import g
151
+
152
+ if g.getCpuAutoThrottle():
153
+ print("CPU 自动限流已开启")
154
+ ```
155
+
104
156
  #### `restartScript` - 重启脚本
105
157
 
106
158
  ```python
@@ -36,32 +36,6 @@ else:
36
36
  # 可能需要重新初始化或检查权限
37
37
  ```
38
38
 
39
- ### autoSwitchApiKeyboard - 自动切换到 API 键盘
40
-
41
- ```python
42
- def autoSwitchApiKeyboard() -> bool
43
- ```
44
-
45
- **返回值:**
46
-
47
- | 类型 | 描述 |
48
- | ------ | ------------------------------------------ |
49
- | `bool` | 是否成功切换并连接到 API 键盘,成功为 True |
50
-
51
- - 该方法仅在系统设置中添加了快点JS API键盘 并且已授权完全访问权限时有效。
52
-
53
- **示例:**
54
-
55
- ```python
56
- from kuaijs import ime
57
-
58
- # 自动切换到 API 键盘(如未弹出会尝试切换)
59
- if ime.autoSwitchApiKeyboard():
60
- print("已切换到 API 键盘")
61
- else:
62
- print("切换失败,请检查键盘设置和完全访问权限")
63
- ```
64
-
65
39
  ## 文本获取和清除
66
40
 
67
41
  ### getText - 获取当前输入框的文本内容