ms-vite-plugin 1.4.31 → 1.4.33
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/bin/mac/ms-bundle-enc +0 -0
- package/bin/win/ms-bundle-enc.exe +0 -0
- package/dist/build.js +0 -4
- package/docs/api/global.md +15 -8
- package/docs/api/media.md +4 -4
- package/docs/api/utils.md +5 -5
- package/docs/apicn/global.md +15 -8
- package/docs/apicn/media.md +4 -4
- package/docs/apicn/utils.md +5 -5
- package/docs/apipython/g.md +64 -0
- package/docs/apipython/media.md +4 -4
- package/docs/apipython/utils.md +5 -5
- package/docs/httpapi/api.md +143 -1
- package/package.json +1 -1
package/bin/mac/ms-bundle-enc
CHANGED
|
Binary file
|
|
Binary file
|
package/dist/build.js
CHANGED
|
@@ -220,10 +220,6 @@ const buildAll = async (isDev = true, workspacePath) => {
|
|
|
220
220
|
disableConsoleOutput: false,
|
|
221
221
|
domainLock: [],
|
|
222
222
|
selfDefending: false,
|
|
223
|
-
// 注入到引擎的全局对象与方法(如 paddleOcr.recognizeAbs、ms、ui、http…)
|
|
224
|
-
// 由原生侧按“名称字符串”绑定,一旦被改名原生就找不到对应实现。
|
|
225
|
-
// 这里强制关闭全局名 / 属性名改写,避免任何 obfuscator.json 误开导致注入 API 被混淆。
|
|
226
|
-
// 如确需对自有属性做重命名,请改用 renamePropertiesMode + reservedNames 白名单。
|
|
227
223
|
renameGlobals: false,
|
|
228
224
|
renameProperties: false,
|
|
229
225
|
},
|
package/docs/api/global.md
CHANGED
|
@@ -459,25 +459,32 @@ logi(`CPU 限流延迟: ${delay.minMs}~${delay.maxMs}ms`);
|
|
|
459
459
|
设置停止回调函数。此回调注册接口只能在主线程调用,不能在线程脚本中调用。
|
|
460
460
|
|
|
461
461
|
```typescript
|
|
462
|
-
function setStopCallback(
|
|
462
|
+
function setStopCallback(
|
|
463
|
+
callback: (status: "success" | "error" | "stopped") => void,
|
|
464
|
+
): void;
|
|
463
465
|
```
|
|
464
466
|
|
|
465
467
|
**参数:**
|
|
466
468
|
|
|
467
|
-
| 参数名 | 类型
|
|
468
|
-
| ---------- |
|
|
469
|
-
| `callback` | () => void | 是 | - | 停止回调函数 |
|
|
469
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
470
|
+
| ---------- | ------------------------------------------------------ | -------- | ------ | ------------ |
|
|
471
|
+
| `callback` | (status: "success" \| "error" \| "stopped") => void | 是 | - | 停止回调函数 |
|
|
470
472
|
|
|
471
473
|
**说明:**
|
|
472
474
|
|
|
473
|
-
|
|
475
|
+
脚本执行停止时调用,`status` 表示停止状态:`success` 为正常完成,`error` 为异常停止,`stopped` 为手动停止。
|
|
474
476
|
|
|
475
477
|
**示例:**
|
|
476
478
|
|
|
477
479
|
```javascript
|
|
478
|
-
setStopCallback(() => {
|
|
479
|
-
|
|
480
|
-
|
|
480
|
+
setStopCallback((status) => {
|
|
481
|
+
if (status === "success") {
|
|
482
|
+
logi("脚本执行完成");
|
|
483
|
+
} else if (status === "error") {
|
|
484
|
+
loge("脚本执行异常");
|
|
485
|
+
} else if (status === "stopped") {
|
|
486
|
+
logi("脚本手动停止");
|
|
487
|
+
}
|
|
481
488
|
});
|
|
482
489
|
```
|
|
483
490
|
|
package/docs/api/media.md
CHANGED
|
@@ -229,9 +229,9 @@ function playMp3WaitEnd(path: string): boolean;
|
|
|
229
229
|
|
|
230
230
|
**返回值:**
|
|
231
231
|
|
|
232
|
-
| 类型 | 描述
|
|
233
|
-
| --------- |
|
|
234
|
-
| `boolean` |
|
|
232
|
+
| 类型 | 描述 |
|
|
233
|
+
| --------- | -------------------------------------------------------------------- |
|
|
234
|
+
| `boolean` | 是否正常播放到结尾;系统音频中断、`stopMp3` 或新播放替换时返回 `false` |
|
|
235
235
|
|
|
236
236
|
**示例:**
|
|
237
237
|
|
|
@@ -242,6 +242,6 @@ const played = media.playMp3WaitEnd("/path/to/notification.mp3");
|
|
|
242
242
|
if (played) {
|
|
243
243
|
logi("音频播放完成");
|
|
244
244
|
} else {
|
|
245
|
-
logi("
|
|
245
|
+
logi("播放失败或被系统音频中断");
|
|
246
246
|
}
|
|
247
247
|
```
|
package/docs/api/utils.md
CHANGED
|
@@ -23,7 +23,7 @@ function timeFormat(format: string): string;
|
|
|
23
23
|
|
|
24
24
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
25
25
|
| -------- | ------ | -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
26
|
-
| `format` | string | 是 | | 时间格式化字符串 <br> `yyyy` - 四位年份 <br> `MM` - 两位月份<br> `dd` - 两位日期<br> `
|
|
26
|
+
| `format` | string | 是 | | 时间格式化字符串 <br> `yyyy` - 四位年份 <br> `MM` - 两位月份<br> `dd` - 两位日期<br> `HH` - 两位小时(24 小时制)<br> `hh` - 两位小时(12 小时制)<br> `mm` - 两位分钟<br> `ss` - 两位秒数 |
|
|
27
27
|
|
|
28
28
|
**返回值:**
|
|
29
29
|
|
|
@@ -35,7 +35,7 @@ function timeFormat(format: string): string;
|
|
|
35
35
|
|
|
36
36
|
```javascript
|
|
37
37
|
// 标准日期时间格式
|
|
38
|
-
const dateTime = utils.timeFormat("yyyy-MM-dd
|
|
38
|
+
const dateTime = utils.timeFormat("yyyy-MM-dd HH:mm:ss");
|
|
39
39
|
logi(dateTime); // 输出: 2024-01-15 14:30:25
|
|
40
40
|
|
|
41
41
|
// 仅日期格式
|
|
@@ -43,15 +43,15 @@ const date = utils.timeFormat("yyyy-MM-dd");
|
|
|
43
43
|
logi(date); // 输出: 2024-01-15
|
|
44
44
|
|
|
45
45
|
// 仅时间格式
|
|
46
|
-
const time = utils.timeFormat("
|
|
46
|
+
const time = utils.timeFormat("HH:mm:ss");
|
|
47
47
|
logi(time); // 输出: 14:30:25
|
|
48
48
|
|
|
49
49
|
// 自定义分隔符
|
|
50
|
-
const customFormat = utils.timeFormat("yyyy/MM/dd
|
|
50
|
+
const customFormat = utils.timeFormat("yyyy/MM/dd HH:mm");
|
|
51
51
|
logi(customFormat); // 输出: 2024/01/15 14:30
|
|
52
52
|
|
|
53
53
|
// 紧凑格式
|
|
54
|
-
const compact = utils.timeFormat("
|
|
54
|
+
const compact = utils.timeFormat("yyyyMMddHHmmss");
|
|
55
55
|
logi(compact); // 输出: 20240115143025
|
|
56
56
|
```
|
|
57
57
|
|
package/docs/apicn/global.md
CHANGED
|
@@ -460,25 +460,32 @@ $打印信息日志(`CPU 限流延迟: ${延迟.minMs}~${延迟.maxMs}ms`);
|
|
|
460
460
|
设置停止回调函数。该回调注册接口只能在主线程调用,不能在线程脚本中调用。
|
|
461
461
|
|
|
462
462
|
```typescript
|
|
463
|
-
declare const $设置停止回调: (
|
|
463
|
+
declare const $设置停止回调: (
|
|
464
|
+
回调: (状态: "success" | "error" | "stopped") => 无返回值,
|
|
465
|
+
) => 无返回值;
|
|
464
466
|
```
|
|
465
467
|
|
|
466
468
|
**参数:**
|
|
467
469
|
|
|
468
|
-
| 参数名 | 类型
|
|
469
|
-
| ------ |
|
|
470
|
-
| `回调` | () => 无返回值 | 是 | - | 停止回调函数 |
|
|
470
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
471
|
+
| ------ | ---------------------------------------------------------- | -------- | ------ | ------------ |
|
|
472
|
+
| `回调` | (状态: "success" \| "error" \| "stopped") => 无返回值 | 是 | - | 停止回调函数 |
|
|
471
473
|
|
|
472
474
|
**说明:**
|
|
473
475
|
|
|
474
|
-
|
|
476
|
+
脚本执行停止时调用,`状态` 表示停止状态:`success` 为正常完成,`error` 为异常停止,`stopped` 为手动停止。
|
|
475
477
|
|
|
476
478
|
**示例:**
|
|
477
479
|
|
|
478
480
|
```javascript
|
|
479
|
-
$设置停止回调(() => {
|
|
480
|
-
|
|
481
|
-
|
|
481
|
+
$设置停止回调((状态) => {
|
|
482
|
+
if (状态 === "success") {
|
|
483
|
+
$打印信息日志("脚本执行完成");
|
|
484
|
+
} else if (状态 === "error") {
|
|
485
|
+
$打印错误日志("脚本执行异常");
|
|
486
|
+
} else if (状态 === "stopped") {
|
|
487
|
+
$打印信息日志("脚本手动停止");
|
|
488
|
+
}
|
|
482
489
|
});
|
|
483
490
|
```
|
|
484
491
|
|
package/docs/apicn/media.md
CHANGED
|
@@ -233,9 +233,9 @@ function 同步播放MP3音乐(文件路径: 字符串): 布尔值;
|
|
|
233
233
|
|
|
234
234
|
**返回值:**
|
|
235
235
|
|
|
236
|
-
| 类型 | 描述
|
|
237
|
-
| -------- |
|
|
238
|
-
| `布尔值` |
|
|
236
|
+
| 类型 | 描述 |
|
|
237
|
+
| -------- | ------------------------------------------------------------------------------------- |
|
|
238
|
+
| `布尔值` | 是否正常播放到结尾;系统音频中断、`停止播放MP3音乐` 或新播放替换时返回 `false` |
|
|
239
239
|
|
|
240
240
|
**示例:**
|
|
241
241
|
|
|
@@ -246,6 +246,6 @@ const 是否播放成功 = $媒体.同步播放MP3音乐("/path/to/notification.
|
|
|
246
246
|
if (是否播放成功) {
|
|
247
247
|
$打印信息日志("音频播放完成");
|
|
248
248
|
} else {
|
|
249
|
-
$打印错误日志("
|
|
249
|
+
$打印错误日志("播放失败或被系统音频中断");
|
|
250
250
|
}
|
|
251
251
|
```
|
package/docs/apicn/utils.md
CHANGED
|
@@ -23,7 +23,7 @@ function 获取当前时间字符串(格式化字符串: 字符串): 字符串;
|
|
|
23
23
|
|
|
24
24
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
25
25
|
| -------------- | ------ | -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
26
|
-
| `格式化字符串` | string | 是 | | 时间格式化字符串 <br> `yyyy` - 四位年份 <br> `MM` - 两位月份<br> `dd` - 两位日期<br> `
|
|
26
|
+
| `格式化字符串` | string | 是 | | 时间格式化字符串 <br> `yyyy` - 四位年份 <br> `MM` - 两位月份<br> `dd` - 两位日期<br> `HH` - 两位小时(24 小时制)<br> `hh` - 两位小时(12 小时制)<br> `mm` - 两位分钟<br> `ss` - 两位秒数 |
|
|
27
27
|
|
|
28
28
|
**返回值:**
|
|
29
29
|
|
|
@@ -35,7 +35,7 @@ function 获取当前时间字符串(格式化字符串: 字符串): 字符串;
|
|
|
35
35
|
|
|
36
36
|
```javascript
|
|
37
37
|
// 标准日期时间格式
|
|
38
|
-
const dateTime = $工具.获取当前时间字符串("yyyy-MM-dd
|
|
38
|
+
const dateTime = $工具.获取当前时间字符串("yyyy-MM-dd HH:mm:ss");
|
|
39
39
|
$打印信息日志(dateTime); // 输出: 2024-01-15 14:30:25
|
|
40
40
|
|
|
41
41
|
// 仅日期格式
|
|
@@ -43,15 +43,15 @@ const date = $工具.获取当前时间字符串("yyyy-MM-dd");
|
|
|
43
43
|
$打印信息日志(date); // 输出: 2024-01-15
|
|
44
44
|
|
|
45
45
|
// 仅时间格式
|
|
46
|
-
const time = $工具.获取当前时间字符串("
|
|
46
|
+
const time = $工具.获取当前时间字符串("HH:mm:ss");
|
|
47
47
|
$打印信息日志(time); // 输出: 14:30:25
|
|
48
48
|
|
|
49
49
|
// 自定义分隔符
|
|
50
|
-
const customFormat = $工具.获取当前时间字符串("yyyy/MM/dd
|
|
50
|
+
const customFormat = $工具.获取当前时间字符串("yyyy/MM/dd HH:mm");
|
|
51
51
|
$打印信息日志(customFormat); // 输出: 2024/01/15 14:30
|
|
52
52
|
|
|
53
53
|
// 紧凑格式
|
|
54
|
-
const compact = $工具.获取当前时间字符串("
|
|
54
|
+
const compact = $工具.获取当前时间字符串("yyyyMMddHHmmss");
|
|
55
55
|
$打印信息日志(compact); // 输出: 20240115143025
|
|
56
56
|
```
|
|
57
57
|
|
package/docs/apipython/g.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- 应用信息常量:版本号/构建号/名称/包名
|
|
8
8
|
- 前台切换:将宿主应用切到前台
|
|
9
9
|
- Agent 设置:读取和设置 Agent 快速模式
|
|
10
|
+
- 脚本生命周期:设置停止回调和异常停止回调
|
|
10
11
|
|
|
11
12
|
## 常量
|
|
12
13
|
|
|
@@ -226,6 +227,69 @@ from kuaijs import g
|
|
|
226
227
|
g.restartScript()
|
|
227
228
|
```
|
|
228
229
|
|
|
230
|
+
#### `setStopCallback` - 设置停止回调
|
|
231
|
+
|
|
232
|
+
设置脚本停止回调函数。回调只在主脚本结束时调用,不能在线程脚本中分别注册。
|
|
233
|
+
|
|
234
|
+
```python
|
|
235
|
+
def setStopCallback(callback: Callable[[Literal["success", "error", "stopped"]], None] | None) -> None
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**参数:**
|
|
239
|
+
|
|
240
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
241
|
+
| ---------- | --------------------------------------------------------- | -------- | ------ | ---- |
|
|
242
|
+
| `callback` | `Callable[[Literal["success", "error", "stopped"]], None]` 或 `None` | 是 | - | 停止回调函数,传 `None` 取消回调 |
|
|
243
|
+
|
|
244
|
+
**状态值:**
|
|
245
|
+
|
|
246
|
+
| 状态 | 描述 |
|
|
247
|
+
| ---- | ---- |
|
|
248
|
+
| `success` | 脚本正常执行完成 |
|
|
249
|
+
| `error` | 脚本发生未捕获异常 |
|
|
250
|
+
| `stopped` | 脚本被手动停止或主动退出 |
|
|
251
|
+
|
|
252
|
+
**示例:**
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
from kuaijs import g
|
|
256
|
+
|
|
257
|
+
def on_stop(status: str) -> None:
|
|
258
|
+
if status == "success":
|
|
259
|
+
print("脚本执行完成")
|
|
260
|
+
elif status == "error":
|
|
261
|
+
print("脚本执行异常")
|
|
262
|
+
elif status == "stopped":
|
|
263
|
+
print("脚本手动停止")
|
|
264
|
+
|
|
265
|
+
g.setStopCallback(on_stop)
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### `setExceptionCallback` - 设置异常停止回调
|
|
269
|
+
|
|
270
|
+
设置脚本异常停止回调函数。该回调只在主脚本发生未捕获异常时调用,并且会早于 `setStopCallback` 注册的停止回调执行。
|
|
271
|
+
|
|
272
|
+
```python
|
|
273
|
+
def setExceptionCallback(callback: Callable[[], None] | None) -> None
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**参数:**
|
|
277
|
+
|
|
278
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
279
|
+
| ---------- | ---------------------------- | -------- | ------ | ---- |
|
|
280
|
+
| `callback` | `Callable[[], None]` 或 `None` | 是 | - | 异常停止回调函数,传 `None` 取消回调 |
|
|
281
|
+
|
|
282
|
+
**示例:**
|
|
283
|
+
|
|
284
|
+
```python
|
|
285
|
+
from kuaijs import g
|
|
286
|
+
|
|
287
|
+
def on_exception() -> None:
|
|
288
|
+
print("脚本异常停止")
|
|
289
|
+
|
|
290
|
+
g.setExceptionCallback(on_exception)
|
|
291
|
+
```
|
|
292
|
+
|
|
229
293
|
#### `loadDex` - 加载指定的 dex、apk 文件
|
|
230
294
|
|
|
231
295
|
**注意:**
|
package/docs/apipython/media.md
CHANGED
|
@@ -205,9 +205,9 @@ def playMp3WaitEnd(path: str) -> bool
|
|
|
205
205
|
|
|
206
206
|
**返回值:**
|
|
207
207
|
|
|
208
|
-
| 类型 | 描述
|
|
209
|
-
| ------ |
|
|
210
|
-
| `bool` |
|
|
208
|
+
| 类型 | 描述 |
|
|
209
|
+
| ------ | -------------------------------------------------------------------- |
|
|
210
|
+
| `bool` | 是否正常播放到结尾;系统音频中断、`stopMp3` 或新播放替换时返回 `False` |
|
|
211
211
|
|
|
212
212
|
**示例:**
|
|
213
213
|
|
|
@@ -216,5 +216,5 @@ from kuaijs import media
|
|
|
216
216
|
|
|
217
217
|
print("开始播放音频...")
|
|
218
218
|
played = media.playMp3WaitEnd("/var/mobile/Media/notification.mp3")
|
|
219
|
-
print("音频播放完成" if played else "
|
|
219
|
+
print("音频播放完成" if played else "播放失败或被系统音频中断")
|
|
220
220
|
```
|
package/docs/apipython/utils.md
CHANGED
|
@@ -23,7 +23,7 @@ def timeFormat(format: str) -> str
|
|
|
23
23
|
|
|
24
24
|
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
25
25
|
| -------- | ---- | -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
26
|
-
| `format` | str | 是 | | 时间格式化字符串 <br> `yyyy` - 四位年份 <br> `MM` - 两位月份<br> `dd` - 两位日期<br> `
|
|
26
|
+
| `format` | str | 是 | | 时间格式化字符串 <br> `yyyy` - 四位年份 <br> `MM` - 两位月份<br> `dd` - 两位日期<br> `HH` - 两位小时(24 小时制)<br> `hh` - 两位小时(12 小时制)<br> `mm` - 两位分钟<br> `ss` - 两位秒数 |
|
|
27
27
|
|
|
28
28
|
**返回值:**
|
|
29
29
|
|
|
@@ -37,7 +37,7 @@ def timeFormat(format: str) -> str
|
|
|
37
37
|
from kuaijs import utils, logger
|
|
38
38
|
|
|
39
39
|
# 标准日期时间格式
|
|
40
|
-
dateTime = utils.timeFormat("yyyy-MM-dd
|
|
40
|
+
dateTime = utils.timeFormat("yyyy-MM-dd HH:mm:ss")
|
|
41
41
|
logger.info(dateTime) # 输出: 2024-01-15 14:30:25
|
|
42
42
|
|
|
43
43
|
# 仅日期格式
|
|
@@ -45,15 +45,15 @@ date = utils.timeFormat("yyyy-MM-dd")
|
|
|
45
45
|
logger.info(date) # 输出: 2024-01-15
|
|
46
46
|
|
|
47
47
|
# 仅时间格式
|
|
48
|
-
time = utils.timeFormat("
|
|
48
|
+
time = utils.timeFormat("HH:mm:ss")
|
|
49
49
|
logger.info(time) # 输出: 14:30:25
|
|
50
50
|
|
|
51
51
|
# 自定义分隔符
|
|
52
|
-
customFormat = utils.timeFormat("yyyy/MM/dd
|
|
52
|
+
customFormat = utils.timeFormat("yyyy/MM/dd HH:mm")
|
|
53
53
|
logger.info(customFormat) # 输出: 2024/01/15 14:30
|
|
54
54
|
|
|
55
55
|
# 紧凑格式
|
|
56
|
-
compact = utils.timeFormat("
|
|
56
|
+
compact = utils.timeFormat("yyyyMMddHHmmss")
|
|
57
57
|
logger.info(compact) # 输出: 20240115143025
|
|
58
58
|
```
|
|
59
59
|
|
package/docs/httpapi/api.md
CHANGED
|
@@ -299,6 +299,92 @@ GET /api/activeAppInfo
|
|
|
299
299
|
| »» bundleId | string | true | none | 应用包名 | none |
|
|
300
300
|
| »» pid | integer | true | none | | none |
|
|
301
301
|
|
|
302
|
+
## GET 获取锁屏状态
|
|
303
|
+
|
|
304
|
+
GET /api/isLocked
|
|
305
|
+
|
|
306
|
+
> 返回示例
|
|
307
|
+
|
|
308
|
+
> 200 Response
|
|
309
|
+
|
|
310
|
+
```json
|
|
311
|
+
{
|
|
312
|
+
"success": true,
|
|
313
|
+
"data": false
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### 返回结果
|
|
318
|
+
|
|
319
|
+
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|
|
320
|
+
| ------ | ------------------------------------------------------- | ---- | -------- |
|
|
321
|
+
| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | none | Inline |
|
|
322
|
+
|
|
323
|
+
### 返回数据结构
|
|
324
|
+
|
|
325
|
+
状态码 **200**
|
|
326
|
+
|
|
327
|
+
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|
|
328
|
+
| --------- | ------- | ---- | ---- | -------- | ---- |
|
|
329
|
+
| » success | boolean | true | none | 是否成功 | none |
|
|
330
|
+
| » data | boolean | true | none | 是否锁屏 | `true` 表示已锁屏,`false` 表示未锁屏 |
|
|
331
|
+
|
|
332
|
+
## GET 锁屏
|
|
333
|
+
|
|
334
|
+
GET /api/lock
|
|
335
|
+
|
|
336
|
+
> 返回示例
|
|
337
|
+
|
|
338
|
+
> 200 Response
|
|
339
|
+
|
|
340
|
+
```json
|
|
341
|
+
{
|
|
342
|
+
"success": true
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### 返回结果
|
|
347
|
+
|
|
348
|
+
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|
|
349
|
+
| ------ | ------------------------------------------------------- | ---- | -------- |
|
|
350
|
+
| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | none | Inline |
|
|
351
|
+
|
|
352
|
+
### 返回数据结构
|
|
353
|
+
|
|
354
|
+
状态码 **200**
|
|
355
|
+
|
|
356
|
+
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|
|
357
|
+
| --------- | ------- | ---- | ---- | -------- | ---- |
|
|
358
|
+
| » success | boolean | true | none | 是否成功 | none |
|
|
359
|
+
|
|
360
|
+
## GET 解锁
|
|
361
|
+
|
|
362
|
+
GET /api/unlock
|
|
363
|
+
|
|
364
|
+
> 返回示例
|
|
365
|
+
|
|
366
|
+
> 200 Response
|
|
367
|
+
|
|
368
|
+
```json
|
|
369
|
+
{
|
|
370
|
+
"success": true
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### 返回结果
|
|
375
|
+
|
|
376
|
+
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|
|
377
|
+
| ------ | ------------------------------------------------------- | ---- | -------- |
|
|
378
|
+
| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | none | Inline |
|
|
379
|
+
|
|
380
|
+
### 返回数据结构
|
|
381
|
+
|
|
382
|
+
状态码 **200**
|
|
383
|
+
|
|
384
|
+
| 名称 | 类型 | 必选 | 约束 | 中文名 | 说明 |
|
|
385
|
+
| --------- | ------- | ---- | ---- | -------- | ---- |
|
|
386
|
+
| » success | boolean | true | none | 是否成功 | none |
|
|
387
|
+
|
|
302
388
|
## GET 获取屏幕亮度
|
|
303
389
|
|
|
304
390
|
GET /api/getScreenBrightness
|
|
@@ -789,7 +875,7 @@ WebSocket Upgrade /mirror/ws
|
|
|
789
875
|
|
|
790
876
|
| 名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
|
|
791
877
|
| ------------- | ----- | ------- | ---- | ------ | ---------------------------- |
|
|
792
|
-
| fps | query | integer | 否 | | 帧率,默认 10,范围 1-
|
|
878
|
+
| fps | query | integer | 否 | | 帧率,默认 10,范围 1-60 |
|
|
793
879
|
| quality | query | number | 否 | | 质量,默认 0.25,范围 0.1-1.0 |
|
|
794
880
|
| scalingFactor | query | number | 否 | | 缩放比例,默认 1.0,范围 0.1-1.0 |
|
|
795
881
|
|
|
@@ -797,6 +883,40 @@ WebSocket Upgrade /mirror/ws
|
|
|
797
883
|
|
|
798
884
|
连接成功后服务端持续发送 JPEG 二进制 WebSocket frame;客户端不需要发送业务消息。
|
|
799
885
|
|
|
886
|
+
## HTTP-FLV 实时屏幕画面流
|
|
887
|
+
|
|
888
|
+
GET /mirror/flv
|
|
889
|
+
|
|
890
|
+
### 请求参数
|
|
891
|
+
|
|
892
|
+
| 名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
|
|
893
|
+
| ------------- | ----- | ------- | ---- | ------ | ----------------------------------- |
|
|
894
|
+
| fps | query | integer | 否 | | 帧率,默认 10,范围 1-60 |
|
|
895
|
+
| quality | query | number | 否 | | JPEG 源质量,默认 0.25,范围 0.1-1.0 |
|
|
896
|
+
| scalingFactor | query | number | 否 | | 缩放比例,默认 1.0,范围 0.1-1.0 |
|
|
897
|
+
| bitrate | query | number | 否 | | H.264 目标码率,单位 Mbps,默认 4 |
|
|
898
|
+
|
|
899
|
+
### 返回数据
|
|
900
|
+
|
|
901
|
+
响应类型为 `video/x-flv`,服务端持续输出 FLV 容器内的 H.264 视频 tag。
|
|
902
|
+
|
|
903
|
+
## WHEP 实时屏幕画面流
|
|
904
|
+
|
|
905
|
+
POST /mirror/whep
|
|
906
|
+
|
|
907
|
+
### 请求参数
|
|
908
|
+
|
|
909
|
+
| 名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
|
|
910
|
+
| ------------- | ----- | ------- | ---- | ------ | ----------------------------------- |
|
|
911
|
+
| fps | query | integer | 否 | | 帧率,默认 10,范围 1-60 |
|
|
912
|
+
| quality | query | number | 否 | | JPEG 源质量,默认 0.25,范围 0.1-1.0 |
|
|
913
|
+
| scalingFactor | query | number | 否 | | 缩放比例,默认 1.0,范围 0.1-1.0 |
|
|
914
|
+
| bitrate | query | number | 否 | | WebRTC 发送码率,单位 Mbps,默认 4 |
|
|
915
|
+
|
|
916
|
+
### 返回数据
|
|
917
|
+
|
|
918
|
+
请求 body 为 `application/sdp` 的 WebRTC offer;响应类型为 `application/sdp`,内容为 WebRTC answer。
|
|
919
|
+
|
|
800
920
|
## POST 执行脚本(仅支持JS脚本)
|
|
801
921
|
|
|
802
922
|
POST /api/runScript
|
|
@@ -2937,6 +3057,28 @@ GET /api/file/download
|
|
|
2937
3057
|
| 401 | [Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1) | 设备未授权 | Inline |
|
|
2938
3058
|
| 404 | [Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4) | 文件不存在 | Inline |
|
|
2939
3059
|
|
|
3060
|
+
## GET MJPEG 镜像流
|
|
3061
|
+
|
|
3062
|
+
GET /mirror/image
|
|
3063
|
+
|
|
3064
|
+
返回 `multipart/x-mixed-replace` MJPEG 长连接,每个 part 都是一帧 JPEG。浏览器可直接用 `<img src="/mirror/image">` 预览。
|
|
3065
|
+
|
|
3066
|
+
### 请求参数
|
|
3067
|
+
|
|
3068
|
+
| 名称 | 位置 | 类型 | 必选 | 说明 |
|
|
3069
|
+
| ------------- | ----- | ------- | ---- | ---- |
|
|
3070
|
+
| fps | query | integer | 否 | 目标帧率,范围 1-60,默认 10 |
|
|
3071
|
+
| quality | query | number | 否 | JPEG 质量,范围 0.1-1.0,默认 0.25 |
|
|
3072
|
+
| scalingFactor | query | number | 否 | 截图缩放因子,范围 0.1-1.0,默认 1.0 |
|
|
3073
|
+
|
|
3074
|
+
### 返回结果
|
|
3075
|
+
|
|
3076
|
+
| 状态码 | 状态码含义 | 说明 | 数据模型 |
|
|
3077
|
+
| ------ | ---------------------------------------------------------------- | ---- | -------- |
|
|
3078
|
+
| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | `multipart/x-mixed-replace; boundary=kuaijs-mjpeg-boundary` 流 | file |
|
|
3079
|
+
| 429 | [Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4) | 镜像流客户端数量已满 | Inline |
|
|
3080
|
+
| 503 | [Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4) | HID 录屏链路未就绪 | Inline |
|
|
3081
|
+
|
|
2940
3082
|
# 数据模型
|
|
2941
3083
|
|
|
2942
3084
|
<h2 id="tocS_软件状态">软件状态</h2>
|