ms-vite-plugin 1.5.17 → 1.5.20

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.
@@ -15,20 +15,20 @@
15
15
 
16
16
  ## 功能一览
17
17
 
18
- | 类别 | API |
19
- | --- | --- |
20
- | 读图 / 截屏 | `capture` · `imread` · `imdecode` · `imwrite` · `imencode` · `fromImageId` / `toImageId` |
21
- | Mat | `Mat` / `zeros` / `ones` · `clone` · `empty` / `isRelease` · `release` / `releaseAll` · `getSize` / `at` / `set` · `copyTo` |
22
- | 颜色 / 阈值 | `cvtColor` · `threshold` · `adaptiveThreshold` · `inRange` · `CLAHE` / `equalizeHist` |
23
- | 算术 / 位运算 | `add` / `subtract` / `multiply` / `divide` · bitwise_* · `absdiff` · `addWeighted` · `convertScaleAbs` · `normalize` / `norm` · `meanStdDev` · `findNonZero` · `countNonZero` · `minMaxLoc` / `mean` / `sum` · `split` / `merge` · `hconcat` / `vconcat` · `LUT` · `compare` · `min` / `max` · `extractChannel` |
24
- | 滤波边缘 | `GaussianBlur` / `blur` / `medianBlur` / `bilateralFilter` / `boxFilter` · `Canny` / `Sobel` / `Laplacian` / `Scharr` · `filter2D` · `pyrDown` / `pyrUp` · `fastNlMeansDenoising` / `fastNlMeansDenoisingColored` · `inpaint` |
25
- | 几何 | `resize` / `crop` / `rotate` / `flip` · `copyMakeBorder` · `warpAffine` / `warpPerspective` · `getRotationMatrix2D` · `getAffineTransform` · `getPerspectiveTransform` · `invertAffineTransform` · `findHomography` · `perspectiveTransform` · `estimateAffine2D` / `estimateAffinePartial2D` · `getRectSubPix` · `phaseCorrelate` |
26
- | 绘制 | `rectangle` / `circle` / `line` / `ellipse` / `arrowedLine` / `drawMarker` · `putText` / `fillPoly` / `fillConvexPoly` / `polylines` / `drawContours` · `getTextSize` |
27
- | 匹配 | `matchTemplate` / `matchTemplateLoc` · `SIFT` / `ORB` / `FAST` · `BFMatcher` / `knnMatch` · `FlannBasedMatcher` / `flannKnnMatch` · `drawKeypoints` / `drawMatches` |
28
- | 轮廓 | `findContours` · `boundingRect` / `minAreaRect` / `boxPoints` · `contourArea` / `arcLength` / `approxPolyDP` / `convexHull` / `convexityDefects` / `isContourConvex` · `moments` / `HuMoments` / `matchShapes` · `pointPolygonTest` · `fitEllipse` / `fitLine` / `minEnclosingCircle` |
29
- | 霍夫 / 连通域 | `HoughLinesP` / `HoughCircles` · `connectedComponents` / `connectedComponentsWithStats` · `distanceTransform` · `floodFill` · `goodFeaturesToTrack` / `cornerHarris` / `cornerSubPix` |
30
- | 直方图 | `calcHist` · `compareHist` · `calcBackProject` |
31
- | 扫码 | `encodeQRCode` · `detectQRCode` · `detectBarcode` |
18
+ | 类别 | API |
19
+ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
20
+ | 读图 / 截屏 | `capture` · `imread` · `imdecode` · `imwrite` · `imencode` · `fromImageId` / `toImageId` |
21
+ | Mat | `Mat` / `zeros` / `ones` · `clone` · `empty` / `isRelease` · `release` / `releaseAll` · `getSize` / `at` / `set` · `copyTo` |
22
+ | 颜色 / 阈值 | `cvtColor` · `threshold` · `adaptiveThreshold` · `inRange` · `CLAHE` / `equalizeHist` |
23
+ | 算术 / 位运算 | `add` / `subtract` / `multiply` / `divide` · bitwise\_\* · `absdiff` · `addWeighted` · `convertScaleAbs` · `normalize` / `norm` · `meanStdDev` · `findNonZero` · `countNonZero` · `minMaxLoc` / `mean` / `sum` · `split` / `merge` · `hconcat` / `vconcat` · `LUT` · `compare` · `min` / `max` · `extractChannel` |
24
+ | 滤波边缘 | `GaussianBlur` / `blur` / `medianBlur` / `bilateralFilter` / `boxFilter` · `Canny` / `Sobel` / `Laplacian` / `Scharr` · `filter2D` · `pyrDown` / `pyrUp` · `fastNlMeansDenoising` / `fastNlMeansDenoisingColored` · `inpaint` |
25
+ | 几何 | `resize` / `crop` / `rotate` / `flip` · `copyMakeBorder` · `warpAffine` / `warpPerspective` · `getRotationMatrix2D` · `getAffineTransform` · `getPerspectiveTransform` · `invertAffineTransform` · `findHomography` · `perspectiveTransform` · `estimateAffine2D` / `estimateAffinePartial2D` · `getRectSubPix` · `phaseCorrelate` |
26
+ | 绘制 | `rectangle` / `circle` / `line` / `ellipse` / `arrowedLine` / `drawMarker` · `putText` / `fillPoly` / `fillConvexPoly` / `polylines` / `drawContours` · `getTextSize` |
27
+ | 匹配 | `matchTemplate` / `matchTemplateLoc` · `SIFT` / `ORB` / `FAST` · `BFMatcher` / `knnMatch` · `FlannBasedMatcher` / `flannKnnMatch` · `drawKeypoints` / `drawMatches` |
28
+ | 轮廓 | `findContours` · `boundingRect` / `minAreaRect` / `boxPoints` · `contourArea` / `arcLength` / `approxPolyDP` / `convexHull` / `convexityDefects` / `isContourConvex` · `moments` / `HuMoments` / `matchShapes` · `pointPolygonTest` · `fitEllipse` / `fitLine` / `minEnclosingCircle` |
29
+ | 霍夫 / 连通域 | `HoughLinesP` / `HoughCircles` · `connectedComponents` / `connectedComponentsWithStats` · `distanceTransform` · `floodFill` · `goodFeaturesToTrack` / `cornerHarris` / `cornerSubPix` |
30
+ | 直方图 | `calcHist` · `compareHist` · `calcBackProject` |
31
+ | 扫码 | `encodeQRCode` · `detectQRCode` · `detectBarcode` |
32
32
 
33
33
  ## 已导出方法
34
34
 
@@ -77,19 +77,19 @@ function capture(x, y, ex, ey) end
77
77
 
78
78
  **参数:**
79
79
 
80
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
81
- | --- | --- | --- | --- | --- |
82
- | `x` | number | 否 | 0 | 区域左上角 X 坐标 |
83
- | `y` | number | 否 | 0 | 区域左上角 Y 坐标 |
84
- | `ex` | number | 否 | 0 | 区域右下角 X 坐标 |
85
- | `ey` | number | 否 | 0 | 区域右下角 Y 坐标 |
80
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
81
+ | ------ | ------ | -------- | ------ | ----------------- |
82
+ | `x` | number | 否 | 0 | 区域左上角 X 坐标 |
83
+ | `y` | number | 否 | 0 | 区域左上角 Y 坐标 |
84
+ | `ex` | number | 否 | 0 | 区域右下角 X 坐标 |
85
+ | `ey` | number | 否 | 0 | 区域右下角 Y 坐标 |
86
86
 
87
87
  无参或全 0 表示全屏。
88
88
 
89
89
  **返回值:**
90
90
 
91
- | 类型 | 描述 |
92
- | --- | --- |
91
+ | 类型 | 描述 |
92
+ | -------- | ------------------------ |
93
93
  | `string` | Mat 句柄,失败返回 `nil` |
94
94
 
95
95
  **示例:**
@@ -111,29 +111,29 @@ function imread(path) end
111
111
 
112
112
  **参数:**
113
113
 
114
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
115
- | --- | --- | --- | --- | --- |
116
- | `path` | string | 是 | - | 见下方支持的输入源 |
114
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
115
+ | ------ | ------ | -------- | ------ | ------------------ |
116
+ | `path` | string | 是 | - | 见下方支持的输入源 |
117
117
 
118
118
  **支持的输入源:**
119
119
 
120
- | 输入 | 说明 |
121
- | --- | --- |
122
- | msbundle/res 相对路径 | 如 `"template.png"`、`"images/logo.jpg"` |
123
- | 手机绝对路径 | 如 documents 下文件 |
124
- | `$MS_IMG$_…` | `image` 模块 imageId |
125
- | `"screen"` | 当前屏幕截图 |
126
- | `"shortcut"` | HID 快捷指令截图 |
127
- | `"actionScreenshot"` | HID 系统截图 |
128
- | `"vpnScreenshot"` | VPN/iDevice 截图 |
129
- | `http://` / `https://` | 网络图片 |
130
- | `media:n` | 相册第 n 张(从 1 起) |
131
- | `data:image/...;base64,...` | data URI |
120
+ | 输入 | 说明 |
121
+ | --------------------------- | ---------------------------------------- |
122
+ | msbundle/res 相对路径 | 如 `"template.png"`、`"images/logo.jpg"` |
123
+ | 手机绝对路径 | 如 documents 下文件 |
124
+ | `$MS_IMG$_…` | `image` 模块 imageId |
125
+ | `"screen"` | 当前屏幕截图 |
126
+ | `"shortcut"` | HID 快捷指令截图 |
127
+ | `"actionScreenshot"` | HID 系统截图 |
128
+ | `"vpnScreenshot"` | VPN免自动化截图 |
129
+ | `http://` / `https://` | 网络图片 |
130
+ | `media:n` | 相册第 n 张(从 1 起) |
131
+ | `data:image/...;base64,...` | data URI |
132
132
 
133
133
  **返回值:**
134
134
 
135
- | 类型 | 描述 |
136
- | --- | --- |
135
+ | 类型 | 描述 |
136
+ | -------- | ------------------------ |
137
137
  | `string` | Mat 句柄,失败返回 `nil` |
138
138
 
139
139
  **示例:**
@@ -160,9 +160,9 @@ function imdecode(data) end
160
160
 
161
161
  **参数:**
162
162
 
163
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
164
- | --- | --- | --- | --- | --- |
165
- | `data` | string | 是 | - | 纯 base64,或 `data:image/...;base64,...` |
163
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
164
+ | ------ | ------ | -------- | ------ | ----------------------------------------- |
165
+ | `data` | string | 是 | - | 纯 base64,或 `data:image/...;base64,...` |
166
166
 
167
167
  **说明:** 不解析文件路径 / msbundle / imageId;路径类请用 `imread`。常与 `imencode` 成对使用。
168
168
 
@@ -189,10 +189,10 @@ function imwrite(path, mat) end
189
189
 
190
190
  **参数:**
191
191
 
192
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
193
- | --- | --- | --- | --- | --- |
194
- | `path` | string | 是 | - | 本地绝对路径(写入磁盘,不是 msbundle) |
195
- | `mat` | Mat | 是 | - | Mat 句柄 |
192
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
193
+ | ------ | ------ | -------- | ------ | --------------------------------------- |
194
+ | `path` | string | 是 | - | 本地绝对路径(写入磁盘,不是 msbundle) |
195
+ | `mat` | Mat | 是 | - | Mat 句柄 |
196
196
 
197
197
  **说明:** 格式由 `path` 的扩展名决定,可用 `png` / `apng` / `jpg` / `jpeg` / `jpe` / `bmp` / `dib` / `webp` / `ppm` / `pgm` / `pbm` / `pnm` / `pam` / `sr` / `ras`;其它扩展名(如 `tiff`)或通道数不是 1 / 3 / 4 的 Mat 会直接返回 `false`。
198
198
 
@@ -218,11 +218,11 @@ function imencode(ext, mat, quality) end
218
218
 
219
219
  **参数:**
220
220
 
221
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
222
- | --- | --- | --- | --- | --- |
223
- | `ext` | string | 是 | - | 如 `.png` / `.jpg` / `png` |
224
- | `mat` | Mat | 是 | - | Mat 句柄 |
225
- | `quality` | number | 否 | 90 | JPEG 质量,取值 1–100(仅 jpg 有效) |
221
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
222
+ | --------- | ------ | -------- | ------ | ------------------------------------ |
223
+ | `ext` | string | 是 | - | 如 `.png` / `.jpg` / `png` |
224
+ | `mat` | Mat | 是 | - | Mat 句柄 |
225
+ | `quality` | number | 否 | 90 | JPEG 质量,取值 1–100(仅 jpg 有效) |
226
226
 
227
227
  **说明:** 可用扩展名与通道限制同 `imwrite`,不支持的格式返回 `nil`。
228
228
 
@@ -244,10 +244,10 @@ function fromImageId(imageId) end
244
244
 
245
245
  **参数:**
246
246
 
247
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
248
- | --- | --- | --- | --- | --- |
249
- | `imageId` | string | 是 | - | `image` 模块句柄 |
250
- | `mat` | Mat | 是 | - | `cv` Mat 句柄 |
247
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
248
+ | --------- | ------ | -------- | ------ | ---------------- |
249
+ | `imageId` | string | 是 | - | `image` 模块句柄 |
250
+ | `mat` | Mat | 是 | - | `cv` Mat 句柄 |
251
251
 
252
252
  **说明:** 均为独立拷贝。`fromImageId(id)` 与 `imread(id)` 对 imageId 效果相同。
253
253
 
@@ -272,11 +272,11 @@ function Mat(options) end
272
272
 
273
273
  **参数:**
274
274
 
275
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
276
- | --- | --- | --- | --- | --- |
277
- | `rows` / `cols` | number | 是 | - | 行 / 列 |
278
- | `type` | number | 否 | `CV_8UC3` | 如 `cv.CV_8UC1` |
279
- | `scalar` | number[] | 否 | - | 仅 `Mat`:填充值 |
275
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
276
+ | --------------- | -------- | -------- | --------- | ---------------- |
277
+ | `rows` / `cols` | number | 是 | - | 行 / 列 |
278
+ | `type` | number | 否 | `CV_8UC3` | 如 `cv.CV_8UC1` |
279
+ | `scalar` | number[] | 否 | - | 仅 `Mat`:填充值 |
280
280
 
281
281
  **示例:**
282
282
 
@@ -342,11 +342,11 @@ function threshold(mat, options) end
342
342
 
343
343
  **参数:**
344
344
 
345
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
346
- | --- | --- | --- | --- | --- |
347
- | `thresh` | number | 否 | 127 | 阈值 |
348
- | `maxval` | number | 否 | 255 | 最大值 |
349
- | `type` | number | 否 | `THRESH_BINARY` | 如 `THRESH_BINARY` / `THRESH_OTSU` |
345
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
346
+ | -------- | ------ | -------- | --------------- | ---------------------------------- |
347
+ | `thresh` | number | 否 | 127 | 阈值 |
348
+ | `maxval` | number | 否 | 255 | 最大值 |
349
+ | `type` | number | 否 | `THRESH_BINARY` | 如 `THRESH_BINARY` / `THRESH_OTSU` |
350
350
 
351
351
  **示例:**
352
352
 
@@ -366,13 +366,13 @@ function adaptiveThreshold(mat, options) end
366
366
 
367
367
  **参数:**
368
368
 
369
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
370
- | --- | --- | --- | --- | --- |
371
- | `maxValue` | number | 否 | 255 | 最大值 |
372
- | `adaptiveMethod` | number | 否 | `ADAPTIVE_THRESH_GAUSSIAN_C` | 或 `ADAPTIVE_THRESH_MEAN_C` |
373
- | `thresholdType` | number | 否 | `THRESH_BINARY` | |
374
- | `blockSize` | number | 否 | 11 | 奇数邻域 |
375
- | `C` | number | 否 | 2 | 常数偏移 |
369
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
370
+ | ---------------- | ------ | -------- | ---------------------------- | --------------------------- |
371
+ | `maxValue` | number | 否 | 255 | 最大值 |
372
+ | `adaptiveMethod` | number | 否 | `ADAPTIVE_THRESH_GAUSSIAN_C` | 或 `ADAPTIVE_THRESH_MEAN_C` |
373
+ | `thresholdType` | number | 否 | `THRESH_BINARY` | |
374
+ | `blockSize` | number | 否 | 11 | 奇数邻域 |
375
+ | `C` | number | 否 | 2 | 常数偏移 |
376
376
 
377
377
  **示例:**
378
378
 
@@ -456,12 +456,12 @@ function Canny(mat, options) end
456
456
 
457
457
  **Canny 参数:**
458
458
 
459
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
460
- | --- | --- | --- | --- | --- |
461
- | `threshold1` | number | 否 | 100 | 低阈值 |
462
- | `threshold2` | number | 否 | 200 | 高阈值 |
463
- | `apertureSize` | number | 否 | 3 | Sobel 孔径 |
464
- | `L2gradient` | boolean | 否 | false | 是否用 L2 范数 |
459
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
460
+ | -------------- | ------- | -------- | ------ | -------------- |
461
+ | `threshold1` | number | 否 | 100 | 低阈值 |
462
+ | `threshold2` | number | 否 | 200 | 高阈值 |
463
+ | `apertureSize` | number | 否 | 3 | Sobel 孔径 |
464
+ | `L2gradient` | boolean | 否 | false | 是否用 L2 范数 |
465
465
 
466
466
  **示例:**
467
467
 
@@ -607,11 +607,11 @@ function matchTemplate(image, templ, methodOrOptions) end
607
607
 
608
608
  **参数:**
609
609
 
610
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
611
- | --- | --- | --- | --- | --- |
612
- | `image` | Mat | 是 | - | 大图 |
613
- | `templ` | Mat | 是 | - | 模板(须小于大图) |
614
- | `method` | number | 否 | `TM_CCOEFF_NORMED` | 匹配方法 |
610
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
611
+ | -------- | ------ | -------- | ------------------ | ------------------ |
612
+ | `image` | Mat | 是 | - | 大图 |
613
+ | `templ` | Mat | 是 | - | 模板(须小于大图) |
614
+ | `method` | number | 否 | `TM_CCOEFF_NORMED` | 匹配方法 |
615
615
 
616
616
  **matchTemplateLoc 返回:** `{ x, y, minVal, maxVal }`(最佳位置取自 max 或 min,取决于 method)。
617
617
 
@@ -638,10 +638,10 @@ function findContours(mat, options) end
638
638
 
639
639
  **参数:**
640
640
 
641
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
642
- | --- | --- | --- | --- | --- |
643
- | `mode` | number | 否 | `RETR_EXTERNAL` | 如 `RETR_LIST` / `RETR_TREE` |
644
- | `method` | number | 否 | `CHAIN_APPROX_SIMPLE` | 如 `CHAIN_APPROX_NONE` |
641
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
642
+ | -------- | ------ | -------- | --------------------- | ---------------------------- |
643
+ | `mode` | number | 否 | `RETR_EXTERNAL` | 如 `RETR_LIST` / `RETR_TREE` |
644
+ | `method` | number | 否 | `CHAIN_APPROX_SIMPLE` | 如 `CHAIN_APPROX_NONE` |
645
645
 
646
646
  **返回值:** `contours` 为点集;`hierarchy` 为每个轮廓的 `[next, prev, child, parent]`(`-1` 表示无)。
647
647
 
@@ -864,4 +864,3 @@ cv.fillConvexPoly(src, { pts = { { x = 20, y = 20 }, { x = 70, y = 20 }, { x = 4
864
864
  - 标记:`MARKER_CROSS` 等
865
865
  - 直方图:`HISTCMP_CORREL` 等
866
866
  - 线型:`LINE_AA`、`FILLED`
867
-
@@ -41,7 +41,7 @@ function startApp(bundleId) end
41
41
 
42
42
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
43
43
  | ---------- | ------ | -------- | ------ | ---------------- |
44
- | `bundleId` | string | 是 | | 应用的 Bundle ID |
44
+ | `bundleId` | string | 是 | | Bundle ID,或已安装应用的显示名 `appName`。同名多个应用时失败 |
45
45
 
46
46
  **返回值:**
47
47
 
@@ -71,7 +71,7 @@ function stopApp(bundleId) end
71
71
 
72
72
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
73
73
  | ---------- | ------ | -------- | ------ | ---------------- |
74
- | `bundleId` | string | 是 | | 应用的 Bundle ID |
74
+ | `bundleId` | string | 是 | | Bundle ID,或已安装应用的显示名 `appName`。同名多个应用时失败 |
75
75
 
76
76
  **返回值:**
77
77
 
@@ -102,7 +102,7 @@ function activateApp(bundleId) end
102
102
 
103
103
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
104
104
  | ---------- | ------ | -------- | ------ | ---------------- |
105
- | `bundleId` | string | 是 | | 应用的 Bundle ID |
105
+ | `bundleId` | string | 是 | | Bundle ID,或已安装应用的显示名 `appName`。同名多个应用时失败 |
106
106
 
107
107
  **返回值:**
108
108
 
@@ -61,7 +61,7 @@ g.takeMeToFront()
61
61
 
62
62
  - `0` 标准:等待完整执行完成
63
63
  - `1` 快速:更快的执行速度
64
- - `2` 真实点击:更接近真实手指触控
64
+ - `2` 真实点击:带触摸面积
65
65
 
66
66
  ```python
67
67
  def setAgentTouchMode(mode: int) -> int
@@ -12,12 +12,18 @@
12
12
 
13
13
  所有传递`imageId`的函数都可以使用`"actionScreenshot"`作为参数,来表示指定 HID 快捷键系统截图
14
14
 
15
+ 所有传递`imageId`的函数都可以使用`"vpnScreenshot"`作为参数,来表示指定VPN免自动化截图
16
+
15
17
  所有传递`imageId`的函数都可以使用图片路径作为参数,来表示对指定图片进行操作,支持 res 目录文件,和手机文件路径。
16
18
 
19
+ `captureScreen` 默认按 `"screen"` 截图。免越狱调用 `setCaptureImageId` 后,改为按设置的 imageId 截图。越狱版该设置不生效。
20
+
17
21
  ## 图片获取与管理
18
22
 
19
23
  ### captureScreen - 截取屏幕
20
24
 
25
+ 按 `setCaptureImageId` 设置的 imageId 截取。未设置时为 `"screen"`。越狱版固定为 `"screen"`。
26
+
21
27
  ```python
22
28
  def captureScreen(x: Optional[int] = 0, y: Optional[int] = 0, ex: Optional[int] = 0, ey: Optional[int] = 0) -> Optional[str]
23
29
  ```
@@ -63,6 +69,35 @@ else:
63
69
  print("截图失败")
64
70
  ```
65
71
 
72
+ ### setCaptureImageId - 设置 captureScreen 的默认 imageId。
73
+
74
+ 设置之后,`captureScreen` 按这个 imageId 截图。可传入与其它 image 函数相同的 imageId:`"screen"`、`"shortcut"`、`"actionScreenshot"`、`"vpnScreenshot"`、res 目录或手机绝对路径、已有图片 ID。越狱版调用后不改变来源。
75
+
76
+ ```python
77
+ def setCaptureImageId(imageId: str) -> None
78
+ ```
79
+
80
+ **参数:**
81
+
82
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
83
+ | ---------- | ---- | -------- | ------ | ------------------------------------------------- |
84
+ | `imageId` | str | 是 | - | `captureScreen` 使用的来源 |
85
+
86
+ **示例:**
87
+
88
+ ```python
89
+ # 之后的 captureScreen 使用快捷指令截图
90
+ image.setCaptureImageId("shortcut")
91
+ imageId = image.captureScreen()
92
+ dir = file.getInternalDir("documents")
93
+ if imageId:
94
+ image.saveTo(imageId, f"{dir}/screenshot.jpg")
95
+ image.release(imageId)
96
+
97
+ # 恢复为当前屏幕
98
+ image.setCaptureImageId("screen")
99
+ ```
100
+
66
101
  ### readImage - 从文件路径或imageId读取图片。
67
102
 
68
103
  ```python
@@ -6,6 +6,8 @@
6
6
 
7
7
  还可读写「允许 App 请求跟踪」「个性化广告」和定位服务总开关。不同 iOS 版本中,这些设置项的名称或位置可能略有不同。
8
8
 
9
+ `jbroot` 把系统根下的路径映射成越狱根下的绝对路径。`rootfs` 把越狱根路径还原成系统根路径。已经是越狱根路径时再调用 `jbroot`,会再映射一次。
10
+
9
11
  ## API 参考
10
12
 
11
13
  ### respring - 重启 SpringBoard(Respring)。
@@ -214,3 +216,78 @@ def setLocationServices(enabled: bool) -> bool:
214
216
  ```python
215
217
  jbsystem.setLocationServices(False)
216
218
  ```
219
+
220
+ ### jbroot - 系统根路径映射为越狱根路径。
221
+
222
+ ```python
223
+ def jbroot(path: str) -> str
224
+ ```
225
+
226
+ **参数:**
227
+
228
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
229
+ | ------ | ----- | -------- | ------ | -------------- |
230
+ | `path` | `str` | 是 | - | 系统根下的路径 |
231
+
232
+ **返回值:**
233
+
234
+ | 类型 | 描述 |
235
+ | ----- | ---------------- |
236
+ | `str` | 对应的越狱根路径 |
237
+
238
+ **示例:**
239
+
240
+ ```python
241
+ from kuaijs import jbsystem
242
+
243
+ # 传入系统根下的路径,返回越狱根下的绝对路径。
244
+ # 隐根:
245
+ # jbsystem.jbroot("/") -> /var/containers/Bundle/Application/.jbroot-XXXXXXXXXXXXXXXX/
246
+ # jbsystem.jbroot("/usr/bin") -> /var/containers/Bundle/Application/.jbroot-XXXXXXXXXXXXXXXX/usr/bin
247
+ # 无根:
248
+ # jbsystem.jbroot("/") -> /var/jb
249
+ # jbsystem.jbroot("/usr/bin") -> /var/jb/usr/bin
250
+ bin = jbsystem.jbroot("/usr/bin")
251
+ print(bin)
252
+ ```
253
+
254
+ ### rootfs - 越狱根路径还原为系统根路径。
255
+
256
+ 把 `jbroot` 得到的越狱根路径还原成原来的系统根路径。
257
+
258
+ ```python
259
+ def rootfs(path: str) -> str
260
+ ```
261
+
262
+ **参数:**
263
+
264
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
265
+ | ------ | ----- | -------- | ------ | -------------- |
266
+ | `path` | `str` | 是 | - | 越狱根下的路径 |
267
+
268
+ **返回值:**
269
+
270
+ | 类型 | 描述 |
271
+ | ----- | ---------------- |
272
+ | `str` | 对应的系统根路径 |
273
+
274
+ **示例:**
275
+
276
+ ```python
277
+ from kuaijs import jbsystem
278
+
279
+ # 传入越狱根路径,返回对应的系统根路径。
280
+ # 隐根:
281
+ # jbsystem.rootfs("/var/containers/Bundle/Application/.jbroot-XXXXXXXXXXXXXXXX/")
282
+ # -> /
283
+ # jbsystem.rootfs("/var/containers/Bundle/Application/.jbroot-XXXXXXXXXXXXXXXX/usr/bin")
284
+ # -> /usr/bin
285
+ # 无根:
286
+ # jbsystem.rootfs("/var/jb") -> /
287
+ # jbsystem.rootfs("/var/jb/usr/bin") -> /usr/bin
288
+ # 隐根上,系统根路径也会被 rootfs 指到 /rootfs:
289
+ # jbsystem.rootfs("/usr/bin") -> /rootfs/usr/bin
290
+ sys_bin = jbsystem.rootfs(jbsystem.jbroot("/usr/bin"))
291
+ print(sys_bin)
292
+ # /usr/bin
293
+ ```
@@ -79,7 +79,7 @@ def startApp(bundle_id: str) -> bool
79
79
  **参数:**
80
80
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
81
81
  | ------ | ---- | ------- | ------ | ---- |
82
- | `bundle_id` | str | 是 | - | 应用 Bundle ID |
82
+ | `bundle_id` | str | 是 | - | Bundle ID,或已安装应用的显示名 `appName`。同名多个应用时失败 |
83
83
 
84
84
  **返回值:**
85
85
 
@@ -105,7 +105,7 @@ def stopApp(bundle_id: str) -> bool
105
105
  **参数:**
106
106
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
107
107
  |-------------|------|----------|--------|-----------------|
108
- | `bundle_id` | str | 是 | - | 应用 Bundle ID |
108
+ | `bundle_id` | str | 是 | - | Bundle ID,或已安装应用的显示名 `appName`。同名多个应用时失败 |
109
109
 
110
110
  **返回值:**
111
111
 
@@ -129,7 +129,7 @@ def activateApp(bundle_id: str) -> bool
129
129
  **参数:**
130
130
  | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
131
131
  |-------------|------|----------|--------|-----------------|
132
- | `bundle_id` | str | 是 | - | 应用 Bundle ID |
132
+ | `bundle_id` | str | 是 | - | Bundle ID,或已安装应用的显示名 `appName`。同名多个应用时失败 |
133
133
 
134
134
  **返回值:**
135
135