ms-vite-plugin 1.1.2 → 1.1.4
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/dist/build.js +6 -0
- package/dist/cli.js +91 -1
- package/dist/mcp/device-config.d.ts +55 -0
- package/dist/mcp/device-config.js +183 -0
- package/dist/mcp/docs-service.d.ts +65 -0
- package/dist/mcp/docs-service.js +168 -0
- package/dist/mcp/project.d.ts +16 -0
- package/dist/mcp/project.js +74 -0
- package/dist/mcp/tools.d.ts +18 -0
- package/dist/mcp/tools.js +825 -0
- package/dist/mcp/types.d.ts +32 -0
- package/dist/mcp/types.js +11 -0
- package/dist/mcp-server.d.ts +2 -0
- package/dist/mcp-server.js +86 -0
- package/dist/project.d.ts +89 -0
- package/dist/project.js +306 -0
- package/dist/version.d.ts +12 -0
- package/dist/version.js +63 -0
- package/docs/api/action.md +922 -0
- package/docs/api/appleocr.md +229 -0
- package/docs/api/config.md +122 -0
- package/docs/api/cryptoUtils.md +232 -0
- package/docs/api/device.md +374 -0
- package/docs/api/file.md +516 -0
- package/docs/api/global.md +617 -0
- package/docs/api/hid.md +1032 -0
- package/docs/api/hotUpdate.md +166 -0
- package/docs/api/http.md +548 -0
- package/docs/api/image.md +907 -0
- package/docs/api/ime.md +290 -0
- package/docs/api/logger.md +324 -0
- package/docs/api/media.md +248 -0
- package/docs/api/mysql.md +441 -0
- package/docs/api/netCard.md +200 -0
- package/docs/api/node.md +353 -0
- package/docs/api/paddleocr.md +246 -0
- package/docs/api/pip.md +242 -0
- package/docs/api/system.md +572 -0
- package/docs/api/thread.md +269 -0
- package/docs/api/tomatoocr.md +425 -0
- package/docs/api/tts.md +334 -0
- package/docs/api/ui.md +947 -0
- package/docs/api/utils.md +265 -0
- package/docs/api/yolo.md +310 -0
- package/docs/apicn/action.md +919 -0
- package/docs/apicn/appleocr.md +233 -0
- package/docs/apicn/config.md +120 -0
- package/docs/apicn/device.md +385 -0
- package/docs/apicn/file.md +511 -0
- package/docs/apicn/global.md +613 -0
- package/docs/apicn/hid.md +1033 -0
- package/docs/apicn/hotUpdate.md +170 -0
- package/docs/apicn/http.md +672 -0
- package/docs/apicn/image.md +924 -0
- package/docs/apicn/ime.md +290 -0
- package/docs/apicn/logger.md +332 -0
- package/docs/apicn/media.md +252 -0
- package/docs/apicn/mysql.md +445 -0
- package/docs/apicn/netCard.md +200 -0
- package/docs/apicn/node.md +362 -0
- package/docs/apicn/paddleocr.md +255 -0
- package/docs/apicn/pip.md +242 -0
- package/docs/apicn/system.md +575 -0
- package/docs/apicn/thread.md +269 -0
- package/docs/apicn/tts.md +338 -0
- package/docs/apicn/ui.md +933 -0
- package/docs/apicn/utils.md +265 -0
- package/docs/apicn/yolo.md +314 -0
- package/docs/apipython/action.md +901 -0
- package/docs/apipython/appleocr.md +226 -0
- package/docs/apipython/config.md +126 -0
- package/docs/apipython/cryptoUtils.md +246 -0
- package/docs/apipython/device.md +365 -0
- package/docs/apipython/file.md +476 -0
- package/docs/apipython/g.md +154 -0
- package/docs/apipython/hid.md +1059 -0
- package/docs/apipython/hotUpdate.md +154 -0
- package/docs/apipython/image.md +938 -0
- package/docs/apipython/ime.md +306 -0
- package/docs/apipython/logger.md +330 -0
- package/docs/apipython/media.md +221 -0
- package/docs/apipython/mysql.md +432 -0
- package/docs/apipython/netCard.md +219 -0
- package/docs/apipython/node.md +331 -0
- package/docs/apipython/overview.md +66 -0
- package/docs/apipython/paddleocr.md +211 -0
- package/docs/apipython/pip.md +231 -0
- package/docs/apipython/system.md +458 -0
- package/docs/apipython/tomatoocr.md +444 -0
- package/docs/apipython/tts.md +331 -0
- package/docs/apipython/ui.md +949 -0
- package/docs/apipython/utils.md +284 -0
- package/docs/apipython/yolo.md +281 -0
- package/package.json +8 -4
|
@@ -0,0 +1,919 @@
|
|
|
1
|
+
# 动作模块 ($动作)
|
|
2
|
+
|
|
3
|
+
动作模块提供了丰富的触摸和按键操作功能,包括点击、滑动、长按滑动、返回首页、多点触摸等动作。
|
|
4
|
+
|
|
5
|
+
**注意事项**
|
|
6
|
+
|
|
7
|
+
- 此模块仅支持 快点 Agent 模式使用
|
|
8
|
+
- HID 模式,请使用 HID 模块
|
|
9
|
+
|
|
10
|
+
## 抖动值
|
|
11
|
+
|
|
12
|
+
### 设置抖动值 - 设置动作抖动值
|
|
13
|
+
|
|
14
|
+
默认抖动值为 5 像素,设置后有 jitter 参数的动作会在像素范围 `-抖动值` 到 `抖动值` 随机偏移。
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
function 设置抖动值(抖动值: 数字): 无返回值;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**参数说明:**
|
|
21
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
22
|
+
| ---------- | ------- | -------- | ------ | ------------------------------------------------------- |
|
|
23
|
+
| `抖动值` | 数字 | 是 | - | 抖动值,点击、滑动等动作会在像素范围 `-抖动值` 到 `抖动值` 随机偏移 |
|
|
24
|
+
|
|
25
|
+
**示例:**
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
// 设置抖动值为5像素
|
|
29
|
+
$动作.设置抖动值(5);
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 基础触摸操作
|
|
33
|
+
|
|
34
|
+
### 点击
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
function 点击(
|
|
38
|
+
坐标x: 数字,
|
|
39
|
+
坐标y: 数字,
|
|
40
|
+
按下持续时间?: 数字,
|
|
41
|
+
抖动?: 布尔值,
|
|
42
|
+
): 布尔值;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**参数说明:**
|
|
46
|
+
|
|
47
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
48
|
+
| -------------- | ------ | -------- | ------ | ---------------------- |
|
|
49
|
+
| `坐标x` | 数字 | 是 | - | 点击的 x 坐标 |
|
|
50
|
+
| `坐标y` | 数字 | 是 | - | 点击的 y 坐标 |
|
|
51
|
+
| `按下持续时间` | 数字 | 否 | 20 | 点击持续时间,单位毫秒 |
|
|
52
|
+
| `抖动` | 布尔值 | 否 | false | 启用随机抖动偏移 |
|
|
53
|
+
|
|
54
|
+
**返回值:**
|
|
55
|
+
| 类型 | 描述 |
|
|
56
|
+
| ---------- | ------- |
|
|
57
|
+
| `布尔值` | 点击是否成功 |
|
|
58
|
+
|
|
59
|
+
**示例:**
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// 基础点击
|
|
63
|
+
$动作.点击(100, 100, 20, false);
|
|
64
|
+
|
|
65
|
+
// 带抖动的点击(更自然,避免检测)
|
|
66
|
+
$动作.点击(200, 300, 50, true);
|
|
67
|
+
|
|
68
|
+
// 长按效果(增加持续时间)
|
|
69
|
+
$动作.点击(100, 100, 800, true);
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 点击随机范围
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
function 点击随机范围(
|
|
76
|
+
区域左上角x坐标: 数字,
|
|
77
|
+
区域左上角y坐标: 数字,
|
|
78
|
+
区域右下角x坐标: 数字,
|
|
79
|
+
区域右下角y坐标: 数字,
|
|
80
|
+
按下持续时间?: 数字,
|
|
81
|
+
): 布尔值;
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**参数说明:**
|
|
85
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
86
|
+
| ---------- | ------- | -------- | ------ | ------------------------------------------------------- |
|
|
87
|
+
| `区域左上角x坐标` | 数字 | 是 | - | 随机点击区域的左上角 x 坐标 |
|
|
88
|
+
| `区域左上角y坐标` | 数字 | 是 | - | 随机点击区域的左上角 y 坐标 |
|
|
89
|
+
| `区域右下角x坐标` | 数字 | 是 | - | 随机点击区域的右下角 x 坐标 |
|
|
90
|
+
| `区域右下角y坐标` | 数字 | 是 | - | 随机点击区域的右下角 y 坐标 |
|
|
91
|
+
| `按下持续时间` | 数字 | 否 | 20 | 点击持续时间,单位毫秒 |
|
|
92
|
+
|
|
93
|
+
**返回值:**
|
|
94
|
+
|
|
95
|
+
| 类型 | 描述 |
|
|
96
|
+
| -------- | ---------------- |
|
|
97
|
+
| `布尔值` | 随机点击是否成功 |
|
|
98
|
+
|
|
99
|
+
**示例:**
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
// 在指定矩形区域内随机点击
|
|
103
|
+
$动作.点击随机范围(100, 100, 200, 200, 20);
|
|
104
|
+
|
|
105
|
+
// 在更大区域内随机点击
|
|
106
|
+
$动作.点击随机范围(50, 50, 400, 600, 50);
|
|
107
|
+
|
|
108
|
+
// 快速随机点击
|
|
109
|
+
$动作.点击随机范围(150, 150, 250, 250, 10);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 双击
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
function 双击(
|
|
116
|
+
坐标x: 数字,
|
|
117
|
+
坐标y: 数字,
|
|
118
|
+
按下持续时间?: 数字,
|
|
119
|
+
间隔时间?: 数字,
|
|
120
|
+
抖动?: 布尔值,
|
|
121
|
+
): 布尔值;
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**参数说明:**
|
|
125
|
+
|
|
126
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
127
|
+
| -------------- | ------ | -------- | ------ | -------------------------------- |
|
|
128
|
+
| `坐标x` | 数字 | 是 | - | 双击的 x 坐标 |
|
|
129
|
+
| `坐标y` | 数字 | 是 | - | 双击的 y 坐标 |
|
|
130
|
+
| `按下持续时间` | 数字 | 否 | 20 | 每次点击的持续时间,单位毫秒 |
|
|
131
|
+
| `间隔时间` | 数字 | 否 | 20 | 两次点击之间的间隔时间,单位毫秒 |
|
|
132
|
+
| `抖动` | 布尔值 | 否 | false | 启用随机抖动偏移 |
|
|
133
|
+
|
|
134
|
+
**返回值:**
|
|
135
|
+
|
|
136
|
+
| 类型 | 描述 |
|
|
137
|
+
| -------- | ------------ |
|
|
138
|
+
| `布尔值` | 双击是否成功 |
|
|
139
|
+
|
|
140
|
+
**示例:**
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
// 基础双击
|
|
144
|
+
$动作.双击(100, 100, 20, 20, false);
|
|
145
|
+
|
|
146
|
+
// 带抖动的双击(更自然,避免检测)
|
|
147
|
+
$动作.双击(200, 300, 50, 20, true);
|
|
148
|
+
|
|
149
|
+
// 慢速双击(增加间隔时间)
|
|
150
|
+
$动作.双击(100, 100, 30, 300, true);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 双击随机范围
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
function 双击随机范围(
|
|
157
|
+
区域左上角x坐标: 数字,
|
|
158
|
+
区域左上角y坐标: 数字,
|
|
159
|
+
区域右下角x坐标: 数字,
|
|
160
|
+
区域右下角y坐标: 数字,
|
|
161
|
+
按下持续时间?: 数字,
|
|
162
|
+
间隔时间?: 数字,
|
|
163
|
+
): 布尔值;
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**参数说明:**
|
|
167
|
+
|
|
168
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
169
|
+
| ----------------- | ---- | -------- | ------ | -------------------------------- |
|
|
170
|
+
| `区域左上角x坐标` | 数字 | 是 | - | 随机双击区域的左上角 x 坐标 |
|
|
171
|
+
| `区域左上角y坐标` | 数字 | 是 | - | 随机双击区域的左上角 y 坐标 |
|
|
172
|
+
| `区域右下角x坐标` | 数字 | 是 | - | 随机双击区域的右下角 x 坐标 |
|
|
173
|
+
| `区域右下角y坐标` | 数字 | 是 | - | 随机双击区域的右下角 y 坐标 |
|
|
174
|
+
| `按下持续时间` | 数字 | 否 | 20 | 每次点击的持续时间,单位毫秒 |
|
|
175
|
+
| `间隔时间` | 数字 | 否 | 20 | 两次点击之间的间隔时间,单位毫秒 |
|
|
176
|
+
|
|
177
|
+
**返回值:**
|
|
178
|
+
|
|
179
|
+
| 类型 | 描述 |
|
|
180
|
+
| -------- | ---------------- |
|
|
181
|
+
| `布尔值` | 随机双击是否成功 |
|
|
182
|
+
|
|
183
|
+
**示例:**
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
// 在指定矩形区域内随机双击
|
|
187
|
+
$动作.双击随机范围(100, 100, 200, 200, 20, 20);
|
|
188
|
+
|
|
189
|
+
// 慢速随机双击
|
|
190
|
+
$动作.双击随机范围(100, 100, 300, 300, 30, 300);
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 滑动
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
function 滑动(
|
|
197
|
+
起始x坐标: 数字,
|
|
198
|
+
起始y坐标: 数字,
|
|
199
|
+
目标x坐标: 数字,
|
|
200
|
+
目标y坐标: 数字,
|
|
201
|
+
滑动持续时间?: 数字,
|
|
202
|
+
抖动?: 布尔值,
|
|
203
|
+
步数?: 数字,
|
|
204
|
+
): 布尔值;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**参数说明:**
|
|
208
|
+
|
|
209
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
210
|
+
| -------------- | ------ | -------- | ------ | ------------------------------------------------------ |
|
|
211
|
+
| `起始x坐标` | 数字 | 是 | - | 滑动起始坐标 x 坐标 |
|
|
212
|
+
| `起始y坐标` | 数字 | 是 | - | 滑动起始坐标 y 坐标 |
|
|
213
|
+
| `目标x坐标` | 数字 | 是 | - | 滑动结束坐标 x 坐标 |
|
|
214
|
+
| `目标y坐标` | 数字 | 是 | - | 滑动结束坐标 y 坐标 |
|
|
215
|
+
| `滑动持续时间` | 数字 | 否 | 100 | 滑动持续时间,单位毫秒 |
|
|
216
|
+
| `抖动` | 布尔值 | 否 | false | 是否开启抖动,开启后会在滑动路径上随机偏移,默认 false |
|
|
217
|
+
| `步数` | 数字 | 否 | 6 | 生成抖动点的数量,影响滑动的平滑度,默认 6 |
|
|
218
|
+
|
|
219
|
+
**返回值:**
|
|
220
|
+
|
|
221
|
+
| 类型 | 描述 |
|
|
222
|
+
| -------- | ------------ |
|
|
223
|
+
| `布尔值` | 滑动是否成功 |
|
|
224
|
+
|
|
225
|
+
**示例:**
|
|
226
|
+
|
|
227
|
+
```typescript
|
|
228
|
+
// 基础滑动(从左到右)
|
|
229
|
+
$动作.滑动(100, 300, 400, 300, 500, false, 10);
|
|
230
|
+
|
|
231
|
+
// 向上滑动(滚动页面)
|
|
232
|
+
$动作.滑动(200, 600, 200, 200, 800, true, 15);
|
|
233
|
+
|
|
234
|
+
// 向下滑动
|
|
235
|
+
$动作.滑动(200, 200, 200, 600, 800, true, 15);
|
|
236
|
+
|
|
237
|
+
// 对角线滑动
|
|
238
|
+
$动作.滑动(100, 100, 300, 400, 1000, true, 20);
|
|
239
|
+
|
|
240
|
+
// 快速滑动
|
|
241
|
+
$动作.滑动(150, 500, 150, 100, 300, false, 5);
|
|
242
|
+
|
|
243
|
+
// 慢速精确滑动
|
|
244
|
+
$动作.滑动(100, 200, 300, 200, 1500, true, 30);
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 长按并滑动
|
|
248
|
+
|
|
249
|
+
```typescript
|
|
250
|
+
function 长按并滑动(
|
|
251
|
+
起始x坐标: 数字,
|
|
252
|
+
起始y坐标: 数字,
|
|
253
|
+
目标x坐标: 数字,
|
|
254
|
+
目标y坐标: 数字,
|
|
255
|
+
按下持续时间?: 数字,
|
|
256
|
+
移动持续时间?: 数字,
|
|
257
|
+
松开持续时间?: 数字,
|
|
258
|
+
抖动?: 布尔值,
|
|
259
|
+
步数?: 数字,
|
|
260
|
+
): 布尔值;
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**参数说明:**
|
|
264
|
+
|
|
265
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
266
|
+
| -------------- | ------ | -------- | ------ | ------------------------------------------------------ |
|
|
267
|
+
| `起始x坐标` | 数字 | 是 | - | 长按起始坐标 x 坐标 |
|
|
268
|
+
| `起始y坐标` | 数字 | 是 | - | 长按起始坐标 y 坐标 |
|
|
269
|
+
| `目标x坐标` | 数字 | 是 | - | 长按滑动目标坐标 x 坐标 |
|
|
270
|
+
| `目标y坐标` | 数字 | 是 | - | 长按滑动目标坐标 y 坐标 |
|
|
271
|
+
| `按下持续时间` | 数字 | 否 | 500 | 按下阶段的持续时间,单位毫秒,默认 500ms |
|
|
272
|
+
| `移动持续时间` | 数字 | 否 | 1000 | 移动阶段的持续时间,单位毫秒,默认 1000ms |
|
|
273
|
+
| `松开持续时间` | 数字 | 否 | 500 | 松开阶段的持续时间,默认 500ms |
|
|
274
|
+
| `抖动` | 布尔值 | 否 | false | 是否开启抖动,开启后会在滑动路径上随机偏移,默认 false |
|
|
275
|
+
| `步数` | 数字 | 否 | 6 | 移动过程中的步数,影响滑动的平滑度,默认 6 |
|
|
276
|
+
|
|
277
|
+
**返回值:**
|
|
278
|
+
|
|
279
|
+
| 类型 | 描述 |
|
|
280
|
+
| -------- | ---------------- |
|
|
281
|
+
| `布尔值` | 长按滑动是否成功 |
|
|
282
|
+
|
|
283
|
+
**示例:**
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
// 拖拽元素
|
|
287
|
+
$动作.长按并滑动(
|
|
288
|
+
100,
|
|
289
|
+
100, // 起始位置
|
|
290
|
+
300,
|
|
291
|
+
400, // 目标位置
|
|
292
|
+
500, // 按下500ms
|
|
293
|
+
1000, // 移动1000ms
|
|
294
|
+
200, // 松开200ms
|
|
295
|
+
true, // 开启抖动
|
|
296
|
+
20, // 20个步数
|
|
297
|
+
);
|
|
298
|
+
|
|
299
|
+
// 长按拖拽(更长的按下时间)
|
|
300
|
+
$动作.长按并滑动(150, 200, 350, 500, 1000, 800, 300, true, 15);
|
|
301
|
+
|
|
302
|
+
// 精确拖拽(无抖动)
|
|
303
|
+
$动作.长按并滑动(200, 300, 200, 100, 300, 600, 100, false, 25);
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### 曲线滑动 - 执行 3 点曲线滑动操作(先快后慢)
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
function 曲线滑动(
|
|
310
|
+
起始x坐标: 数字,
|
|
311
|
+
起始y坐标: 数字,
|
|
312
|
+
中间点x坐标: 数字,
|
|
313
|
+
中间点y坐标: 数字,
|
|
314
|
+
目标x坐标: 数字,
|
|
315
|
+
目标y坐标: 数字,
|
|
316
|
+
滑动持续时间?: 数字,
|
|
317
|
+
): 布尔值;
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**参数说明:**
|
|
321
|
+
|
|
322
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
323
|
+
| -------------- | ---- | -------- | ------ | ------------------------------------- |
|
|
324
|
+
| `起始x坐标` | 数字 | 是 | - | 滑动起始坐标 x 坐标 |
|
|
325
|
+
| `起始y坐标` | 数字 | 是 | - | 滑动起始坐标 y 坐标 |
|
|
326
|
+
| `中间点x坐标` | 数字 | 是 | - | 曲线中间控制点 x 坐标 |
|
|
327
|
+
| `中间点y坐标` | 数字 | 是 | - | 曲线中间控制点 y 坐标 |
|
|
328
|
+
| `目标x坐标` | 数字 | 是 | - | 滑动结束坐标 x 坐标 |
|
|
329
|
+
| `目标y坐标` | 数字 | 是 | - | 滑动结束坐标 y 坐标 |
|
|
330
|
+
| `滑动持续时间` | 数字 | 否 | 1000 | 总滑动持续时间,单位毫秒,默认 1000ms |
|
|
331
|
+
|
|
332
|
+
**返回值:**
|
|
333
|
+
|
|
334
|
+
| 类型 | 描述 |
|
|
335
|
+
| -------- | ---------------- |
|
|
336
|
+
| `布尔值` | 曲线滑动是否成功 |
|
|
337
|
+
|
|
338
|
+
**功能特点:**
|
|
339
|
+
|
|
340
|
+
- 使用二次贝塞尔曲线算法生成平滑的滑动路径
|
|
341
|
+
- 实现先快后慢的滑动效果,模拟真实的手势操作
|
|
342
|
+
- 根据滑动距离自动调整路径点数量,确保滑动平滑度
|
|
343
|
+
- **拟人化轨迹**:添加随机偏移和微抖动,模拟真实人手操作的不稳定性
|
|
344
|
+
- **随机化时间**:每个路径点的时间间隔都有随机变化,避免机械化操作
|
|
345
|
+
- **智能偏移**:中间路径点偏移更大,起点和终点保持精确,更符合人类操作习惯
|
|
346
|
+
- 适用于需要更自然滑动轨迹场景
|
|
347
|
+
|
|
348
|
+
**示例:**
|
|
349
|
+
|
|
350
|
+
```typescript
|
|
351
|
+
// 基础曲线滑动
|
|
352
|
+
$动作.曲线滑动(100, 100, 200, 150, 300, 200, 1000);
|
|
353
|
+
|
|
354
|
+
// 弧形向上滑动
|
|
355
|
+
$动作.曲线滑动(200, 500, 150, 300, 200, 100, 800);
|
|
356
|
+
|
|
357
|
+
// S形曲线滑动
|
|
358
|
+
$动作.曲线滑动(100, 200, 300, 100, 200, 400, 1200);
|
|
359
|
+
|
|
360
|
+
// 快速曲线滑动
|
|
361
|
+
$动作.曲线滑动(150, 300, 250, 200, 350, 400, 600);
|
|
362
|
+
|
|
363
|
+
// 慢速精确曲线滑动
|
|
364
|
+
$动作.曲线滑动(100, 100, 200, 50, 300, 100, 1500);
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## 文本输入操作
|
|
368
|
+
|
|
369
|
+
- 仅输入框聚焦可用,以下方法是在模拟键盘操作
|
|
370
|
+
- 更多高级输入操作,请参考 [IME 模块](ime.md)
|
|
371
|
+
|
|
372
|
+
### 输入文本
|
|
373
|
+
|
|
374
|
+
```typescript
|
|
375
|
+
function 输入文本(文本: 字符串): 布尔值;
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
**参数说明:**
|
|
379
|
+
|
|
380
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
381
|
+
| ------ | ------ | -------- | ------ | ---------------- |
|
|
382
|
+
| `文本` | 字符串 | 是 | - | 要输入的文本内容 |
|
|
383
|
+
|
|
384
|
+
**返回值:**
|
|
385
|
+
|
|
386
|
+
| 类型 | 描述 |
|
|
387
|
+
| -------- | ---------------- |
|
|
388
|
+
| `布尔值` | 输入文本是否成功 |
|
|
389
|
+
|
|
390
|
+
**示例:**
|
|
391
|
+
|
|
392
|
+
```javascript
|
|
393
|
+
// 输入文本
|
|
394
|
+
const 是否成功 = $动作.输入文本("hello 快点JS");
|
|
395
|
+
if (是否成功) {
|
|
396
|
+
$打印信息日志("成功输入文本");
|
|
397
|
+
}
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### 删除文本
|
|
401
|
+
|
|
402
|
+
```typescript
|
|
403
|
+
function 删除文本(删除数量?: 数字): 布尔值;
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
**参数说明:**
|
|
407
|
+
|
|
408
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
409
|
+
| ---------- | ---- | -------- | ------ | --------------------------- |
|
|
410
|
+
| `删除数量` | 数字 | 否 | 1 | 删除数量,默认删除 1 个字符 |
|
|
411
|
+
|
|
412
|
+
**返回值:**
|
|
413
|
+
|
|
414
|
+
| 类型 | 描述 |
|
|
415
|
+
| -------- | ---------------- |
|
|
416
|
+
| `布尔值` | 删除文本是否成功 |
|
|
417
|
+
|
|
418
|
+
**示例:**
|
|
419
|
+
|
|
420
|
+
```typescript
|
|
421
|
+
// 删除最后一个字符
|
|
422
|
+
const 是否成功 = $动作.删除文本();
|
|
423
|
+
if (是否成功) {
|
|
424
|
+
$打印信息日志("成功删除最后一个字符");
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
// 删除多个字符
|
|
428
|
+
const 是否成功 = $动作.删除文本(3);
|
|
429
|
+
if (是否成功) {
|
|
430
|
+
$打印信息日志("成功删除 3 个字符");
|
|
431
|
+
}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### 回车
|
|
435
|
+
|
|
436
|
+
```typescript
|
|
437
|
+
function 回车(): 布尔值;
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
**返回值:**
|
|
441
|
+
|
|
442
|
+
| 类型 | 描述 |
|
|
443
|
+
| -------- | ---------------- |
|
|
444
|
+
| `布尔值` | 调用回车是否成功 |
|
|
445
|
+
|
|
446
|
+
**示例:**
|
|
447
|
+
|
|
448
|
+
```typescript
|
|
449
|
+
// 调用回车
|
|
450
|
+
const 是否成功 = $动作.回车();
|
|
451
|
+
if (是否成功) {
|
|
452
|
+
$打印信息日志("成功调用回车");
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
## 系统按键操作
|
|
457
|
+
|
|
458
|
+
### 回到主页
|
|
459
|
+
|
|
460
|
+
```typescript
|
|
461
|
+
function 回到主页(): 布尔值;
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
**返回值:**
|
|
465
|
+
|
|
466
|
+
| 类型 | 描述 |
|
|
467
|
+
| -------- | ---------------- |
|
|
468
|
+
| `布尔值` | 返回首页是否成功 |
|
|
469
|
+
|
|
470
|
+
**示例:**
|
|
471
|
+
|
|
472
|
+
```typescript
|
|
473
|
+
// 返回主屏幕
|
|
474
|
+
const 是否成功 = $动作.回到主页();
|
|
475
|
+
if (是否成功) {
|
|
476
|
+
$打印信息日志("成功返回主屏幕");
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
// 在操作完成后返回主屏幕
|
|
480
|
+
function completeTaskAndGoHome() {
|
|
481
|
+
// 执行一些操作...
|
|
482
|
+
$动作.点击(200, 300, 100, true);
|
|
483
|
+
sleep(1000);
|
|
484
|
+
|
|
485
|
+
// 返回主屏幕
|
|
486
|
+
$动作.回到主页();
|
|
487
|
+
}
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### 按键 - 按下系统按钮
|
|
491
|
+
|
|
492
|
+
```typescript
|
|
493
|
+
function 按键(按键: "home" | "volumeup" | "volumedown"): 布尔值;
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**参数说明:**
|
|
497
|
+
|
|
498
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
499
|
+
| ------ | ------ | -------- | ------ | ------------------------------------------------------------------------------------------ |
|
|
500
|
+
| `按键` | 字符串 | 是 | - | 按钮类型: <br>-`"home"` Home 键 <br>- `"volumeup"` 音量上键 <br>- `"volumedown"` 音量下键 |
|
|
501
|
+
|
|
502
|
+
**返回值:**
|
|
503
|
+
|
|
504
|
+
| 类型 | 描述 |
|
|
505
|
+
| -------- | ---------------- |
|
|
506
|
+
| `布尔值` | 按下按钮是否成功 |
|
|
507
|
+
|
|
508
|
+
**示例:**
|
|
509
|
+
|
|
510
|
+
```typescript
|
|
511
|
+
// 按下 Home 键
|
|
512
|
+
$动作.按键("home");
|
|
513
|
+
|
|
514
|
+
// 调高音量
|
|
515
|
+
$动作.按键("volumeup");
|
|
516
|
+
|
|
517
|
+
// 调低音量
|
|
518
|
+
$动作.按键("volumedown");
|
|
519
|
+
|
|
520
|
+
// 连续调节音量
|
|
521
|
+
for (let i = 0; i < 5; i++) {
|
|
522
|
+
const 是否成功 = $动作.按键("volumeup");
|
|
523
|
+
if (是否成功) {
|
|
524
|
+
$打印信息日志("成功调高音量");
|
|
525
|
+
}
|
|
526
|
+
$延时(200);
|
|
527
|
+
}
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
## 动作构建器
|
|
531
|
+
|
|
532
|
+
动作构建器 提供了更高级的多点触控操作能力,支持链式调用构建复杂的手势动作。
|
|
533
|
+
|
|
534
|
+
### 创建动作构建器
|
|
535
|
+
|
|
536
|
+
```typescript
|
|
537
|
+
function 创建动作构建器(): $动作构建器;
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
**返回值:**
|
|
541
|
+
|
|
542
|
+
| 类型 | 描述 |
|
|
543
|
+
| ------------- | -------------- |
|
|
544
|
+
| `$动作构建器` | 动作构建器实例 |
|
|
545
|
+
|
|
546
|
+
**示例:**
|
|
547
|
+
|
|
548
|
+
```javascript
|
|
549
|
+
// 创建构建器
|
|
550
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
### 动作构建器
|
|
554
|
+
|
|
555
|
+
动作构建器 支持链式调用,可以构建复杂的多点触控动作。
|
|
556
|
+
|
|
557
|
+
#### 添加手指
|
|
558
|
+
|
|
559
|
+
```typescript
|
|
560
|
+
function 添加手指(手指: 数字): $指针构建器;
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
**参数说明:**
|
|
564
|
+
|
|
565
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
566
|
+
| ------ | ---- | -------- | ------ | ------------------------------------ |
|
|
567
|
+
| `手指` | 数字 | 是 | - | 指针编号,1-10,对应设备上的手指编号 |
|
|
568
|
+
|
|
569
|
+
**返回值:**
|
|
570
|
+
|
|
571
|
+
| 类型 | 描述 |
|
|
572
|
+
| ------------- | -------------------------------- |
|
|
573
|
+
| `$指针构建器` | 指针构建器,用于配置该指针的动作 |
|
|
574
|
+
|
|
575
|
+
**示例:**
|
|
576
|
+
|
|
577
|
+
```javascript
|
|
578
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
579
|
+
// 添加第一个手指
|
|
580
|
+
const 指针1 = 动作构建器.添加手指(1);
|
|
581
|
+
|
|
582
|
+
// 添加第二个手指
|
|
583
|
+
const 指针2 = 动作构建器.添加手指(2);
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
#### 单指点击
|
|
587
|
+
|
|
588
|
+
```typescript
|
|
589
|
+
function 单指点击(坐标x: 数字, 坐标y: 数字, 持续时间?: 数字): $动作构建器;
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
**参数说明:**
|
|
593
|
+
|
|
594
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
595
|
+
| ---------- | ---- | -------- | ------ | ------------------------------------- |
|
|
596
|
+
| `坐标x` | 数字 | 是 | - | X 坐标 |
|
|
597
|
+
| `坐标y` | 数字 | 是 | - | Y 坐标 |
|
|
598
|
+
| `持续时间` | 数字 | 否 | 20 | 点击持续时间,如果未定义则默认为 20ms |
|
|
599
|
+
|
|
600
|
+
**返回值:**
|
|
601
|
+
|
|
602
|
+
| 类型 | 描述 |
|
|
603
|
+
| ------------- | ---------------------- |
|
|
604
|
+
| `$指针构建器` | 返回自身,支持链式调用 |
|
|
605
|
+
|
|
606
|
+
**示例:**
|
|
607
|
+
|
|
608
|
+
```javascript
|
|
609
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
610
|
+
// 快速单点点击
|
|
611
|
+
动作构建器.单指点击(100, 100, 50).执行();
|
|
612
|
+
|
|
613
|
+
// 连续点击
|
|
614
|
+
动作构建器.单指点击(100, 100, 30).单指点击(200, 200, 30).执行();
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
#### 多指点击
|
|
618
|
+
|
|
619
|
+
```typescript
|
|
620
|
+
function 多指点击(
|
|
621
|
+
坐标数组: Array<{ x: 数字; y: 数字 }>,
|
|
622
|
+
持续时间?: 数字,
|
|
623
|
+
): $动作构建器;
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
**参数说明:**
|
|
627
|
+
|
|
628
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
629
|
+
| ---------- | ---- | -------- | ------ | -------------------------------------- |
|
|
630
|
+
| `坐标数组` | 数组 | 是 | - | 点击坐标数组,每个元素包含 x 和 y 坐标 |
|
|
631
|
+
| `持续时间` | 数字 | 否 | 20 | 点击持续时间,如果未定义则默认为 20ms |
|
|
632
|
+
|
|
633
|
+
**返回值:**
|
|
634
|
+
|
|
635
|
+
| 类型 | 描述 |
|
|
636
|
+
| ------------- | ---------------------- |
|
|
637
|
+
| `$动作构建器` | 返回自身,支持链式调用 |
|
|
638
|
+
|
|
639
|
+
**示例:**
|
|
640
|
+
|
|
641
|
+
```javascript
|
|
642
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
643
|
+
// 多点同时点击
|
|
644
|
+
const 点击坐标数组 = [
|
|
645
|
+
{ x: 100, y: 100 },
|
|
646
|
+
{ x: 200, y: 200 },
|
|
647
|
+
{ x: 300, y: 300 },
|
|
648
|
+
];
|
|
649
|
+
动作构建器.多指点击(点击坐标数组, 50).执行();
|
|
650
|
+
|
|
651
|
+
// 双指点击
|
|
652
|
+
动作构建器
|
|
653
|
+
.多指点击(
|
|
654
|
+
[
|
|
655
|
+
{ x: 150, y: 300 },
|
|
656
|
+
{ x: 250, y: 300 },
|
|
657
|
+
],
|
|
658
|
+
100,
|
|
659
|
+
)
|
|
660
|
+
.执行();
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
#### 执行
|
|
664
|
+
|
|
665
|
+
```typescript
|
|
666
|
+
function 执行(): 布尔值;
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
**返回值:**
|
|
670
|
+
|
|
671
|
+
| 类型 | 描述 |
|
|
672
|
+
| -------- | ------------ |
|
|
673
|
+
| `布尔值` | 执行是否成功 |
|
|
674
|
+
|
|
675
|
+
**示例:**
|
|
676
|
+
|
|
677
|
+
```javascript
|
|
678
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
679
|
+
// 执行构建的动作
|
|
680
|
+
const 执行成功 = 动作构建器
|
|
681
|
+
.添加手指(1)
|
|
682
|
+
.移动到(100, 100)
|
|
683
|
+
.点击(200, 200)
|
|
684
|
+
.完成()
|
|
685
|
+
.执行();
|
|
686
|
+
|
|
687
|
+
if (执行成功) {
|
|
688
|
+
$打印信息日志("动作执行成功");
|
|
689
|
+
}
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### 指针构建器
|
|
693
|
+
|
|
694
|
+
指针构建器用于配置单个指针(手指)的动作序列。
|
|
695
|
+
|
|
696
|
+
#### 移动到
|
|
697
|
+
|
|
698
|
+
```typescript
|
|
699
|
+
function 移动到(坐标x: 数字, 坐标y: 数字, 持续时间?: 数字): $指针构建器;
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
**参数说明:**
|
|
703
|
+
|
|
704
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
705
|
+
| ---------- | ---- | -------- | ------ | ------------------------------------ |
|
|
706
|
+
| `坐标x` | 数字 | 是 | - | X 坐标 |
|
|
707
|
+
| `坐标y` | 数字 | 是 | - | Y 坐标 |
|
|
708
|
+
| `持续时间` | 数字 | 否 | 0 | 移动持续时间,如果未定义则默认为 0ms |
|
|
709
|
+
|
|
710
|
+
**返回值:**
|
|
711
|
+
|
|
712
|
+
| 类型 | 描述 |
|
|
713
|
+
| ------------- | ---------------------- |
|
|
714
|
+
| `$指针构建器` | 返回自身,支持链式调用 |
|
|
715
|
+
|
|
716
|
+
#### 按下
|
|
717
|
+
|
|
718
|
+
```typescript
|
|
719
|
+
function 按下(): $指针构建器;
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
**返回值:**
|
|
723
|
+
|
|
724
|
+
| 类型 | 描述 |
|
|
725
|
+
| ------------- | ---------------------- |
|
|
726
|
+
| `$指针构建器` | 返回自身,支持链式调用 |
|
|
727
|
+
|
|
728
|
+
#### 抬起
|
|
729
|
+
|
|
730
|
+
```typescript
|
|
731
|
+
function 抬起(): $指针构建器;
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
**返回值:**
|
|
735
|
+
|
|
736
|
+
| 类型 | 描述 |
|
|
737
|
+
| ------------- | ---------------------- |
|
|
738
|
+
| `$指针构建器` | 返回自身,支持链式调用 |
|
|
739
|
+
|
|
740
|
+
#### 停留
|
|
741
|
+
|
|
742
|
+
```typescript
|
|
743
|
+
function 停留(持续时间?: 数字): $指针构建器;
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
**参数说明:**
|
|
747
|
+
|
|
748
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
749
|
+
| ---------- | ---- | -------- | ------ | ----------------------------------------- |
|
|
750
|
+
| `持续时间` | 数字 | 否 | 20 | 停留时间(毫秒),如果未定义则默认为 20ms |
|
|
751
|
+
|
|
752
|
+
**返回值:**
|
|
753
|
+
|
|
754
|
+
| 类型 | 描述 |
|
|
755
|
+
| ------------- | ---------------------- |
|
|
756
|
+
| `$指针构建器` | 返回自身,支持链式调用 |
|
|
757
|
+
|
|
758
|
+
#### 点击
|
|
759
|
+
|
|
760
|
+
```typescript
|
|
761
|
+
function 点击(坐标x: 数字, 坐标y: 数字, 持续时间?: 数字): $指针构建器;
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
**参数说明:**
|
|
765
|
+
|
|
766
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
767
|
+
| ---------- | ---- | -------- | ------ | ------------------------------------- |
|
|
768
|
+
| `坐标x` | 数字 | 是 | - | X 坐标 |
|
|
769
|
+
| `坐标y` | 数字 | 是 | - | Y 坐标 |
|
|
770
|
+
| `持续时间` | 数字 | 否 | 20 | 按下持续时间,如果未定义则默认为 20ms |
|
|
771
|
+
|
|
772
|
+
**返回值:**
|
|
773
|
+
|
|
774
|
+
| 类型 | 描述 |
|
|
775
|
+
| ------------- | ---------------------- |
|
|
776
|
+
| `$指针构建器` | 返回自身,支持链式调用 |
|
|
777
|
+
|
|
778
|
+
**功能说明:**
|
|
779
|
+
|
|
780
|
+
- 自动执行:移动 -> 按下 -> 暂停 -> 抬起的完整点击序列
|
|
781
|
+
|
|
782
|
+
#### 完成
|
|
783
|
+
|
|
784
|
+
```typescript
|
|
785
|
+
function 完成(): $动作构建器;
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
**返回值:**
|
|
789
|
+
|
|
790
|
+
| 类型 | 描述 |
|
|
791
|
+
| ------------- | ---------------------------------- |
|
|
792
|
+
| `$动作构建器` | 返回主构建器,可以继续添加其他指针 |
|
|
793
|
+
|
|
794
|
+
## 高级使用示例
|
|
795
|
+
|
|
796
|
+
### 单指滑动
|
|
797
|
+
|
|
798
|
+
```javascript
|
|
799
|
+
// 单指从左到右滑动
|
|
800
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
801
|
+
动作构建器
|
|
802
|
+
.添加手指(1)
|
|
803
|
+
.移动到(100, 300, 0) // 移动到起始位置
|
|
804
|
+
.按下() // 按下
|
|
805
|
+
.移动到(400, 300, 500) // 滑动到结束位置
|
|
806
|
+
.抬起() // 抬起
|
|
807
|
+
.完成()
|
|
808
|
+
.执行();
|
|
809
|
+
```
|
|
810
|
+
|
|
811
|
+
### 双指缩放(放大)
|
|
812
|
+
|
|
813
|
+
```javascript
|
|
814
|
+
// 双指从中心向外扩展
|
|
815
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
816
|
+
动作构建器
|
|
817
|
+
.添加手指(1)
|
|
818
|
+
.移动到(200, 300, 0) // 第一个手指起始位置
|
|
819
|
+
.按下() // 按下
|
|
820
|
+
.移动到(150, 250, 300) // 向左上移动
|
|
821
|
+
.抬起() // 抬起
|
|
822
|
+
.完成()
|
|
823
|
+
.添加手指(2)
|
|
824
|
+
.移动到(200, 300, 0) // 第二个手指起始位置
|
|
825
|
+
.按下() // 按下
|
|
826
|
+
.移动到(250, 350, 300) // 向右下移动
|
|
827
|
+
.抬起() // 抬起
|
|
828
|
+
.完成()
|
|
829
|
+
.执行();
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
### 双指缩放(缩小)
|
|
833
|
+
|
|
834
|
+
```javascript
|
|
835
|
+
// 双指从外向中心收缩
|
|
836
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
837
|
+
动作构建器
|
|
838
|
+
.添加手指(1)
|
|
839
|
+
.移动到(150, 250, 0) // 第一个手指起始位置
|
|
840
|
+
.按下() // 按下
|
|
841
|
+
.移动到(200, 300, 300) // 向中心移动
|
|
842
|
+
.抬起() // 抬起
|
|
843
|
+
.完成()
|
|
844
|
+
.添加手指(2)
|
|
845
|
+
.移动到(250, 350, 0) // 第二个手指起始位置
|
|
846
|
+
.按下() // 按下
|
|
847
|
+
.移动到(200, 300, 300) // 向中心移动
|
|
848
|
+
.抬起() // 抬起
|
|
849
|
+
.完成()
|
|
850
|
+
.执行();
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
### 双指旋转
|
|
854
|
+
|
|
855
|
+
```javascript
|
|
856
|
+
// 双指围绕中心点旋转
|
|
857
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
858
|
+
const centerX = 200,
|
|
859
|
+
centerY = 300;
|
|
860
|
+
const radius = 50;
|
|
861
|
+
|
|
862
|
+
动作构建器
|
|
863
|
+
.添加手指(1)
|
|
864
|
+
.移动到(centerX - radius, centerY, 0) // 左侧起始
|
|
865
|
+
.按下() // 按下
|
|
866
|
+
.移动到(centerX, centerY - radius, 200) // 向上旋转
|
|
867
|
+
.移动到(centerX + radius, centerY, 200) // 向右旋转
|
|
868
|
+
.抬起() // 抬起
|
|
869
|
+
.完成()
|
|
870
|
+
.添加手指(2)
|
|
871
|
+
.移动到(centerX + radius, centerY, 0) // 右侧起始
|
|
872
|
+
.按下() // 按下
|
|
873
|
+
.移动到(centerX, centerY + radius, 200) // 向下旋转
|
|
874
|
+
.移动到(centerX - radius, centerY, 200) // 向左旋转
|
|
875
|
+
.抬起() // 抬起
|
|
876
|
+
.完成()
|
|
877
|
+
.执行();
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
### 长按拖拽
|
|
881
|
+
|
|
882
|
+
```javascript
|
|
883
|
+
// 长按后拖拽元素
|
|
884
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
885
|
+
动作构建器
|
|
886
|
+
.添加手指(1)
|
|
887
|
+
.移动到(100, 100, 0) // 移动到目标位置
|
|
888
|
+
.按下() // 按下
|
|
889
|
+
.停留(800) // 长按 800ms
|
|
890
|
+
.移动到(300, 400, 1000) // 拖拽到新位置
|
|
891
|
+
.抬起() // 抬起
|
|
892
|
+
.完成()
|
|
893
|
+
.执行();
|
|
894
|
+
```
|
|
895
|
+
|
|
896
|
+
### 复杂手势组合
|
|
897
|
+
|
|
898
|
+
```javascript
|
|
899
|
+
// 先点击,再滑动,最后双击
|
|
900
|
+
const 动作构建器 = $动作.创建动作构建器();
|
|
901
|
+
|
|
902
|
+
// 第一步:单击
|
|
903
|
+
动作构建器.点击(100, 100, 50);
|
|
904
|
+
|
|
905
|
+
// 第二步:滑动
|
|
906
|
+
动作构建器
|
|
907
|
+
.添加手指(1)
|
|
908
|
+
.移动到(200, 200, 0) // 移动到起始位置
|
|
909
|
+
.按下() // 按下
|
|
910
|
+
.移动到(400, 200, 600) // 滑动到结束位置
|
|
911
|
+
.抬起() // 抬起
|
|
912
|
+
.完成();
|
|
913
|
+
|
|
914
|
+
// 第三步:双击
|
|
915
|
+
动作构建器.双击(300, 300, 30);
|
|
916
|
+
|
|
917
|
+
// 执行所有动作
|
|
918
|
+
动作构建器.执行();
|
|
919
|
+
```
|