js-apis-inner-application-accessibilityExtensionContext.md 43.1 KB
Newer Older
1
# AccessibilityExtensionContext (辅助功能扩展上下文)
2 3 4

AccessibilityExtensionContext是AccessibilityExtensionAbility上下文环境,继承自ExtensionContext。

Z
zaki 已提交
5
辅助功能扩展上下文模块提供辅助功能扩展的上下文环境的能力,包括允许配置辅助应用关注信息类型、查询节点信息、手势注入等。
6 7 8 9

> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10
>
11 12
> 本模块接口仅可在Stage模型下使用。

L
laiguizhong 已提交
13 14
## 使用说明

15
在使用AccessibilityExtensionContext的功能前,需要通过AccessibilityExtensionAbility子类实例获取AccessibilityExtensionContex的实例。
16

M
m00512953 已提交
17
```ts
Z
zhanghuiyu_5451 已提交
18 19 20 21 22 23
import AccessibilityExtensionAbility, {
  AccessibilityExtensionContext,
} from '@ohos.application.AccessibilityExtensionAbility';

let axContext: AccessibilityExtensionContext;

24
class EntryAbility extends AccessibilityExtensionAbility {
Z
zhanghuiyu_5451 已提交
25
  axContext = this.context;
L
laiguizhong 已提交
26
}
27 28 29 30 31 32
```

## FocusDirection

表示查询下一焦点元素的方向。

33
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
34

D
merge  
donglin 已提交
35
| 名称       | 说明      |
H
HelloCrease 已提交
36 37
| -------- | ------- |
| up       | 表示向上查询。 |
38
| down     | 表示向下查询。 |
H
HelloCrease 已提交
39 40 41
| left     | 表示向左查询。 |
| right    | 表示向右查询。 |
| forward  | 表示向前查询。 |
42 43 44 45 46 47
| backward | 表示向后查询。 |

## FocusType

表示查询焦点元素的类型。

48
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
49

D
merge  
donglin 已提交
50
| 名称            | 说明          |
H
HelloCrease 已提交
51
| ------------- | ----------- |
52
| accessibility | 表示无障碍的焦点类型。 |
H
HelloCrease 已提交
53
| normal        | 表示普通的焦点类型。  |
54 55 56 57 58

## Rect

表示矩形区域。

59
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
60

61
| 名称     | 类型     | 可读   | 可写   | 说明        |
H
HelloCrease 已提交
62 63 64 65 66
| ------ | ------ | ---- | ---- | --------- |
| left   | number | 是    | 否    | 矩形区域的左边界。 |
| top    | number | 是    | 否    | 矩形区域的上边界。 |
| width  | number | 是    | 否    | 矩形区域的宽度。  |
| height | number | 是    | 否    | 矩形区域的高度。  |
67 68 69 70 71

## WindowType

表示窗口的类型。

72
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
73

D
merge  
donglin 已提交
74
| 名称          | 说明        |
H
HelloCrease 已提交
75
| ----------- | --------- |
76
| application | 表示应用窗口类型。 |
H
HelloCrease 已提交
77
| system      | 表示系统窗口类型。 |
78 79 80

## AccessibilityExtensionContext.setTargetBundleName

Z
zaki 已提交
81
setTargetBundleName(targetNames: Array\<string>): Promise\<void>;
82

Z
zaki 已提交
83
设置关注的目标包名,使用Promise异步回调。
84 85 86 87 88

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

89
| 参数名         | 类型                  | 必填   | 说明       |
H
HelloCrease 已提交
90 91
| ----------- | ------------------- | ---- | -------- |
| targetNames | Array&lt;string&gt; | 是    | 关注的目标包名。 |
92 93 94

**返回值:**

95 96
| 类型                  | 说明               |
| ------------------- | ---------------- |
Z
zaki 已提交
97
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
98 99 100 101

**示例:**

```ts
Z
zaki 已提交
102
let targetNames = ['com.ohos.xyz'];
Z
zhanghuiyu_5451 已提交
103

104
try {
Z
zhanghuiyu_5451 已提交
105 106 107 108 109
  axContext.setTargetBundleName(targetNames).then(() => {
    console.info('set target bundle names success');
  }).catch((err: object) => {
    console.error(`failed to set target bundle names, because ${JSON.stringify(err)}`);
  });
110
} catch (exception) {
Z
zhanghuiyu_5451 已提交
111 112
  console.error(`failed to set target bundle names, because ${JSON.stringify(exception)}`);
}
Z
zaki 已提交
113 114 115 116 117 118 119 120 121 122 123 124
```

## AccessibilityExtensionContext.setTargetBundleName

setTargetBundleName(targetNames: Array\<string>, callback: AsyncCallback\<void>): void;

设置关注的目标包名,使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

125 126 127
| 参数名         | 类型                        | 必填   | 说明                                       |
| ----------- | ------------------------- | ---- | ---------------------------------------- |
| targetNames | Array&lt;string&gt;       | 是    | 关注的目标包名。                                 |
Z
zaki 已提交
128 129 130 131 132
| callback    | AsyncCallback&lt;void&gt; | 是    | 回调函数,如果设置关注的目标包名失败,则AsyncCallback中err有数据返回。 |

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
133 134
import { BusinessError } from '@ohos.base';

Z
zaki 已提交
135
let targetNames = ['com.ohos.xyz'];
136
try {
Z
zhanghuiyu_5451 已提交
137 138 139 140 141 142 143
  axContext.setTargetBundleName(targetNames, (err: BusinessError<void>) => {
    if (err) {
      console.error(`failed to set target bundle names, because ${JSON.stringify(err)}`);
      return;
    }
    console.info('set target bundle names success');
  });
144
} catch (exception) {
Z
zhanghuiyu_5451 已提交
145 146
  console.error(`failed to set target bundle names, because ${JSON.stringify(exception)}`);
}
147 148 149 150 151 152
```

## AccessibilityExtensionContext.getFocusElement

getFocusElement(isAccessibilityFocus?: boolean): Promise\<AccessibilityElement>;

Z
zaki 已提交
153
获取焦点元素, 使用Promise异步回调。
154 155 156 157 158

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

159
| 参数名                  | 类型      | 必填   | 说明                  |
H
HelloCrease 已提交
160 161
| -------------------- | ------- | ---- | ------------------- |
| isAccessibilityFocus | boolean | 否    | 获取的是否是无障碍焦点元素,默认为否。 |
162 163 164

**返回值:**

H
HelloCrease 已提交
165 166
| 类型                                  | 说明                     |
| ----------------------------------- | ---------------------- |
Z
zaki 已提交
167
| Promise&lt;AccessibilityElement&gt; | Promise对象,返回当前对应的焦点元素。 |
168

169 170 171 172
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

173 174
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
175 176
| 9300003 | Do not have accessibility right for this operation. |

177 178 179
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
180 181 182
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';

let focusElement: AccessibilityElement;
183
try {
Z
zhanghuiyu_5451 已提交
184 185 186 187 188 189
  axContext.getFocusElement().then((data: AccessibilityElement) => {
    focusElement = data;
    console.log('get focus element success');
  }).catch((err: object) => {
    console.error(`failed to get focus element, because ${JSON.stringify(err)}`);
  });
190
} catch (exception) {
Z
zhanghuiyu_5451 已提交
191
  console.error(`failed to get focus element, because ${JSON.stringify(exception)}`);
192
}
193 194
```

Z
zaki 已提交
195 196 197 198 199 200 201 202 203 204
## AccessibilityExtensionContext.getFocusElement

getFocusElement(callback: AsyncCallback\<AccessibilityElement>): void;

获取焦点元素, 使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

205 206 207
| 参数名      | 类型                                       | 必填   | 说明                |
| -------- | ---------------------------------------- | ---- | ----------------- |
| callback | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回当前对应的焦点元素。 |
Z
zaki 已提交
208

209 210 211 212
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

213 214
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
215 216
| 9300003 | Do not have accessibility right for this operation. |

Z
zaki 已提交
217 218 219
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
220 221 222 223
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let focusElement: AccessibilityElement;
224
try {
Z
zhanghuiyu_5451 已提交
225 226 227 228 229 230 231 232
  axContext.getFocusElement((err: BusinessError<void>, data: AccessibilityElement) => {
    if (err) {
      console.error(`failed to get focus element, because ${JSON.stringify(err)}`);
      return;
    }
    focusElement = data;
    console.info('get focus element success');
  });
233
} catch (exception) {
Z
zhanghuiyu_5451 已提交
234
  console.error(`failed to get focus element, because ${JSON.stringify(exception)}`);
235
}
Z
zaki 已提交
236 237 238 239 240 241 242 243 244 245 246 247
```

## AccessibilityExtensionContext.getFocusElement

getFocusElement(isAccessibilityFocus: boolean, callback: AsyncCallback\<AccessibilityElement>): void;

获取焦点元素, 使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

248 249 250 251
| 参数名                  | 类型                                       | 必填   | 说明                |
| -------------------- | ---------------------------------------- | ---- | ----------------- |
| isAccessibilityFocus | boolean                                  | 是    | 获取的是否是无障碍焦点元素。    |
| callback             | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回当前对应的焦点元素。 |
Z
zaki 已提交
252

L
update  
luocheng 已提交
253 254 255 256 257 258 259 260
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
| 9300003 | Do not have accessibility right for this operation. |

Z
zaki 已提交
261 262 263
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
264 265 266 267
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let focusElement: AccessibilityElement;
268
let isAccessibilityFocus = true;
Z
zhanghuiyu_5451 已提交
269

270
try {
Z
zhanghuiyu_5451 已提交
271
  axContext.getFocusElement(isAccessibilityFocus, (err: BusinessError<void>, data: AccessibilityElement) => {
Z
zhanghuiyu_5451 已提交
272
    if (err) {
Z
zhanghuiyu_5451 已提交
273 274
      console.error(`failed to get focus element, because ${JSON.stringify(err)}`);
      return;
Z
zaki 已提交
275 276 277
    }
    focusElement = data;
    console.info('get focus element success');
Z
zhanghuiyu_5451 已提交
278
  });
279
} catch (exception) {
Z
zhanghuiyu_5451 已提交
280
  console.error(`failed to get focus element, because ${JSON.stringify(exception)}`);
281
}
Z
zaki 已提交
282
```
283 284 285 286
## AccessibilityExtensionContext.getWindowRootElement

getWindowRootElement(windowId?: number): Promise\<AccessibilityElement>;

Z
zaki 已提交
287
获取指定窗口的根节点元素, 使用Promise异步回调。
288 289 290 291 292

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

293 294
| 参数名      | 类型     | 必填   | 说明                     |
| -------- | ------ | ---- | ---------------------- |
Z
zaki 已提交
295
| windowId | number | 否    | 指定窗口的编号,未指定则从当前活跃窗口获取。 |
296 297 298

**返回值:**

Z
zaki 已提交
299 300
| 类型                                  | 说明                     |
| ----------------------------------- | ---------------------- |
J
jinqi6 已提交
301
| Promise&lt;AccessibilityElement&gt; | Promise对象,返回指定窗口的根节点元素。 |
Z
zaki 已提交
302

303 304 305 306
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

307 308
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
309 310
| 9300003 | Do not have accessibility right for this operation. |

Z
zaki 已提交
311 312 313
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
314 315 316
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';

let rootElement: AccessibilityElement;
317
try {
Z
zhanghuiyu_5451 已提交
318 319 320 321 322 323
  axContext.getWindowRootElement().then((data: AccessibilityElement) => {
    rootElement = data;
    console.log('get root element of the window success');
  }).catch((err: object) => {
    console.error(`failed to get root element of the window, because ${JSON.stringify(err)}`);
  });
324
} catch (exception) {
Z
zhanghuiyu_5451 已提交
325
  console.error(`failed to get root element of the window, ${JSON.stringify(exception)}`);
326
}
Z
zaki 已提交
327 328 329 330 331 332 333 334 335 336 337 338
```

## AccessibilityExtensionContext.getWindowRootElement

getWindowRootElement(callback: AsyncCallback\<AccessibilityElement>): void;

获取指定窗口的根节点元素, 使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

339 340 341
| 参数名      | 类型                                       | 必填   | 说明                 |
| -------- | ---------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回指定窗口的根节点元素。 |
Z
zaki 已提交
342

343 344 345 346
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

347 348
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
349 350
| 9300003 | Do not have accessibility right for this operation. |

Z
zaki 已提交
351 352 353
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
354 355 356 357
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let rootElement: AccessibilityElement;
358
try {
Z
zhanghuiyu_5451 已提交
359 360
  axContext.getWindowRootElement((err: BusinessError<void>
                                  , data: AccessibilityElement) => {
Z
zhanghuiyu_5451 已提交
361
    if (err) {
Z
zhanghuiyu_5451 已提交
362 363
      console.error(`failed to get root element of the window, because ${JSON.stringify(err)}`);
      return;
Z
zaki 已提交
364 365 366
    }
    rootElement = data;
    console.info('get root element of the window success');
Z
zhanghuiyu_5451 已提交
367
  });
368
} catch (exception) {
Z
zhanghuiyu_5451 已提交
369
  console.error(`failed to get root element of the window, because ${JSON.stringify(exception)}`);
370
}
Z
zaki 已提交
371 372 373 374 375 376
```

## AccessibilityExtensionContext.getWindowRootElement

getWindowRootElement(windowId: number, callback: AsyncCallback\<AccessibilityElement>): void;

J
jinqi6 已提交
377
获取指定窗口的根节点元素, 使用callback异步回调。
Z
zaki 已提交
378 379 380 381 382

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

383 384 385 386
| 参数名      | 类型                                       | 必填   | 说明                     |
| -------- | ---------------------------------------- | ---- | ---------------------- |
| windowId | number                                   | 是    | 指定窗口的编号,未指定则从当前活跃窗口获取。 |
| callback | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回指定窗口的根节点元素。     |
387

388 389 390 391
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

392 393
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
394 395
| 9300003 | Do not have accessibility right for this operation. |

396 397 398
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
399 400 401 402
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let rootElement: AccessibilityElement;
403
let windowId = 10;
Z
zhanghuiyu_5451 已提交
404

405
try {
Z
zhanghuiyu_5451 已提交
406
  axContext.getWindowRootElement(windowId, (err: BusinessError<void>, data: AccessibilityElement) => {
Z
zhanghuiyu_5451 已提交
407
    if (err) {
Z
zhanghuiyu_5451 已提交
408 409
      console.error(`failed to get root element of the window, because ${JSON.stringify(err)}`);
      return;
Z
zaki 已提交
410 411 412
    }
    rootElement = data;
    console.info('get root element of the window success');
Z
zhanghuiyu_5451 已提交
413
  });
414
} catch (exception) {
Z
zhanghuiyu_5451 已提交
415
  console.error(`failed to get root element of the window, because ${JSON.stringify(exception)}`);
416
}
417 418 419 420
```

## AccessibilityExtensionContext.getWindows

Z
zaki 已提交
421
getWindows(displayId?: number): Promise\<Array\<AccessibilityElement>>;
422

Z
zaki 已提交
423
获取指定屏幕中的所有窗口, 使用Promise异步回调。
424 425 426 427 428

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

429 430
| 参数名       | 类型     | 必填   | 说明                    |
| --------- | ------ | ---- | --------------------- |
Z
zaki 已提交
431
| displayId | number | 否    | 指定的屏幕编号,未指定则从默认主屏幕获取。 |
432 433 434

**返回值:**

435 436
| 类型                                       | 说明                     |
| ---------------------------------------- | ---------------------- |
Z
zaki 已提交
437
| Promise&lt;Array&lt;AccessibilityElement&gt;&gt; | Promise对象,返回指定屏幕的所有窗口。 |
438

439 440 441 442
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

443 444
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
445 446
| 9300003 | Do not have accessibility right for this operation. |

447 448 449
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
450 451 452
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';

let windows: AccessibilityElement[];
453
try {
Z
zhanghuiyu_5451 已提交
454 455 456 457 458 459
  axContext.getWindows().then((data: AccessibilityElement[]) => {
    windows = data;
    console.log('get windows success');
  }).catch((err: object) => {
    console.error(`failed to get windows, because ${JSON.stringify(err)}`);
  });
460
} catch (exception) {
Z
zhanghuiyu_5451 已提交
461
  console.error(`failed to get windows, because ${JSON.stringify(exception)}`);
462
}
Z
zaki 已提交
463 464 465 466 467 468 469 470 471 472 473 474
```

## AccessibilityExtensionContext.getWindows

getWindows(callback: AsyncCallback\<Array\<AccessibilityElement>>): void;

获取指定屏幕中的所有窗口, 使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

475 476 477
| 参数名      | 类型                                       | 必填   | 说明                |
| -------- | ---------------------------------------- | ---- | ----------------- |
| callback | AsyncCallback&lt;Array&lt;AccessibilityElement&gt;&gt; | 是    | 回调函数,返回指定屏幕的所有窗口。 |
Z
zaki 已提交
478

479 480 481 482
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

483 484
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
485 486
| 9300003 | Do not have accessibility right for this operation. |

Z
zaki 已提交
487 488 489
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
490 491 492 493
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let windows: AccessibilityElement[];
494
try {
Z
zhanghuiyu_5451 已提交
495 496 497 498 499 500 501 502
  axContext.getWindows((err: BusinessError<void>, data: AccessibilityElement[]) => {
    if (err) {
      console.error(`failed to get windows, because ${JSON.stringify(err)}`);
      return;
    }
    windows = data;
    console.info('get windows success');
  });
503
} catch (exception) {
Z
zhanghuiyu_5451 已提交
504
  console.error(`failed to get windows, because ${JSON.stringify(exception)}`);
505
}
Z
zaki 已提交
506 507 508 509 510 511 512 513 514 515 516 517
```

## AccessibilityExtensionContext.getWindows

getWindows(displayId: number, callback: AsyncCallback\<Array\<AccessibilityElement>>): void;

获取指定屏幕中的所有窗口, 使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

518 519 520 521
| 参数名       | 类型                                       | 必填   | 说明                    |
| --------- | ---------------------------------------- | ---- | --------------------- |
| displayId | number                                   | 是    | 指定的屏幕编号,未指定则从默认主屏幕获取。 |
| callback  | AsyncCallback&lt;Array&lt;AccessibilityElement&gt;&gt; | 是    | 回调函数,返回指定屏幕的所有窗口。     |
Z
zaki 已提交
522

523 524 525 526
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

527 528
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
529 530
| 9300003 | Do not have accessibility right for this operation. |

Z
zaki 已提交
531 532 533
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
534 535 536 537
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let windows: AccessibilityElement[];
538 539
let displayId = 10;
try {
Z
zhanghuiyu_5451 已提交
540 541 542 543 544 545 546 547
  axContext.getWindows(displayId, (err: BusinessError<void>, data: AccessibilityElement[]) => {
    if (err) {
      console.error(`failed to get windows, because ${JSON.stringify(err)}`);
      return;
    }
    windows = data;
    console.info('get windows success');
  });
548
} catch (exception) {
Z
zhanghuiyu_5451 已提交
549
  console.error(`failed to get windows, because ${JSON.stringify(exception)}`);
550
}
551 552
```

L
laiguizhong 已提交
553
## AccessibilityExtensionContext.injectGesture
554

Z
zaki 已提交
555 556 557 558 559 560 561 562
injectGesture(gesturePath: GesturePath): Promise\<void>;

注入手势,使用Promise异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

563 564 565
| 参数名         | 类型                                       | 必填   | 说明         |
| ----------- | ---------------------------------------- | ---- | ---------- |
| gesturePath | [GesturePath](js-apis-accessibility-GesturePath.md#gesturepath) | 是    | 表示手势的路径信息。 |
Z
zaki 已提交
566 567 568

**返回值:**

569 570
| 类型                  | 说明               |
| ------------------- | ---------------- |
Z
zaki 已提交
571 572
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |

573 574 575 576
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

577 578
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
579 580
| 9300003 | Do not have accessibility right for this operation. |

Z
zaki 已提交
581 582 583
**示例:**

```ts
M
mingxihua 已提交
584
import GesturePath from '@ohos.accessibility.GesturePath';
585
import GesturePoint from '@ohos.accessibility.GesturePoint';
Z
zhanghuiyu_5451 已提交
586 587

let gesturePath: GesturePath.GesturePath = new GesturePath.GesturePath(100);
588
try {
Z
zhanghuiyu_5451 已提交
589 590 591 592 593 594 595 596 597
  for (let i = 0; i < 10; i++) {
    let gesturePoint = new GesturePoint.GesturePoint(100, i * 200);
    gesturePath.points.push(gesturePoint);
  }
  axContext.injectGesture(gesturePath).then(() => {
    console.info('inject gesture success');
  }).catch((err: object) => {
    console.error(`failed to inject gesture, because ${JSON.stringify(err)}`);
  });
598
} catch (exception) {
Z
zhanghuiyu_5451 已提交
599
  console.error(`failed to inject gesture, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
600 601 602 603
}
```
## AccessibilityExtensionContext.injectGesture

604
injectGesture(gesturePath: GesturePath, callback: AsyncCallback\<void>): void
605

Z
zaki 已提交
606
注入手势,使用callback异步回调。
607 608 609 610 611

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

612 613 614 615
| 参数名         | 类型                                       | 必填   | 说明                  |
| ----------- | ---------------------------------------- | ---- | ------------------- |
| gesturePath | [GesturePath](js-apis-accessibility-GesturePath.md#gesturepath) | 是    | 表示手势的路径信息。          |
| callback    | AsyncCallback&lt;void&gt;                | 是    | 回调函数,表示注入手势执行结果的回调。 |
616

617 618 619 620
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

621 622
| 错误码ID   | 错误信息                                     |
| ------- | ---------------------------------------- |
623 624
| 9300003 | Do not have accessibility right for this operation. |

625 626 627
**示例:**

```ts
M
mingxihua 已提交
628
import GesturePath from '@ohos.accessibility.GesturePath';
629
import GesturePoint from '@ohos.accessibility.GesturePoint';
Z
zhanghuiyu_5451 已提交
630 631

let gesturePath: GesturePath.GesturePath = new GesturePath.GesturePath(100);
632
try {
Z
zhanghuiyu_5451 已提交
633 634 635 636 637 638 639 640
  for (let i = 0; i < 10; i++) {
    let gesturePoint = new GesturePoint.GesturePoint(100, i * 200);
    gesturePath.points.push(gesturePoint);
  }
  axContext.injectGesture(gesturePath, (err) => {
    if (err) {
      console.error(`failed to inject gesture, because ${JSON.stringify(err)}`);
      return;
Z
zaki 已提交
641
    }
Z
zhanghuiyu_5451 已提交
642 643
    console.info('inject gesture success');
  });
644
} catch (exception) {
Z
zhanghuiyu_5451 已提交
645
  console.error(`failed to inject gesture, because ${JSON.stringify(exception)}`);
646
}
647
```
648
## AccessibilityElement<sup>9+</sup>
Z
zaki 已提交
649

650
无障碍节点元素, 在调用AccessibilityElement的方法前,需要先通过[AccessibilityExtensionContext.getFocusElement()](#accessibilityextensioncontextgetfocuselement)或者[AccessibilityExtensionContext.getWindowRootElement()](#accessibilityextensioncontextgetwindowrootelement)获取AccessibilityElement实例。
Z
zaki 已提交
651 652 653

**系统能力**:以下各项对应的系统能力均为SystemCapability.BarrierFree.Accessibility.Core

J
jinqi6 已提交
654
### attributeNames
Z
zaki 已提交
655

656
attributeNames\<T extends keyof ElementAttributeValues>(): Promise\<Array\<T>>;
Z
zaki 已提交
657

Z
zaki 已提交
658
获取节点元素的所有属性名称,使用Promise异步回调。
Z
zaki 已提交
659 660 661 662 663

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**返回值:**

664 665
| 类型                            | 说明                       |
| ----------------------------- | ------------------------ |
Z
zaki 已提交
666
| Promise&lt;Array&lt;T&gt;&gt; | Promise对象,返回节点元素的所有属性名称。 |
Z
zaki 已提交
667 668 669 670

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
671 672 673 674 675 676
import { ElementAttributeKeys } from '@ohos.application.AccessibilityExtensionAbility';

let attributeNames: ElementAttributeKeys;
rootElement.attributeNames().then((data: ElementAttributeKeys) => {
  console.log('get attribute names success');
  attributeNames = data;
Z
zhanghuiyu_5451 已提交
677
}).catch((err: object) => {
Z
zhanghuiyu_5451 已提交
678
  console.log(`failed to get attribute names, because ${JSON.stringify(err)}`);
679
});
Z
zaki 已提交
680
```
J
jinqi6 已提交
681
### attributeNames
Z
zaki 已提交
682 683 684 685 686 687 688 689 690

attributeNames\<T extends keyof ElementAttributeValues>(callback: AsyncCallback\<Array\<T>>): void;

获取节点元素的所有属性名称,使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

691 692 693
| 参数名      | 类型                                  | 必填   | 说明                  |
| -------- | ----------------------------------- | ---- | ------------------- |
| callback | AsyncCallback&lt;Array&lt;T&gt;&gt; | 是    | 回调函数,返回节点元素的所有属性名称。 |
Z
zaki 已提交
694 695

**示例:**
Z
zaki 已提交
696

Z
zaki 已提交
697
```ts
Z
zhanghuiyu_5451 已提交
698 699 700 701 702 703 704 705 706 707 708
import { ElementAttributeKeys } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let attributeNames: ElementAttributeKeys[];
rootElement.attributeNames((err: BusinessError<void>, data: ElementAttributeKeys[]) => {
  if (err) {
    console.error(`failed to get attribute names, because ${JSON.stringify(err)}`);
    return;
  }
  attributeNames = data;
  console.info('get attribute names success');
709
});
Z
zaki 已提交
710
```
J
jinqi6 已提交
711
### attributeValue
Z
zaki 已提交
712 713 714

attributeValue\<T extends keyof ElementAttributeValues>(attributeName: T): Promise\<ElementAttributeValues[T]>;

Z
zaki 已提交
715
根据属性名称获取属性值,使用Promise异步回调。
Z
zaki 已提交
716 717 718 719 720

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

721 722
| 参数名           | 类型   | 必填   | 说明       |
| ------------- | ---- | ---- | -------- |
Z
zhanghuiyu_5451 已提交
723
| attributeName | ElementAttributeKeys  | 是    | 表示属性的名称。 |
Z
zaki 已提交
724 725 726

**返回值:**

727 728
| 类型                                       | 说明                          |
| ---------------------------------------- | --------------------------- |
Z
zaki 已提交
729
| Promise&lt;ElementAttributeValues[T]&gt; | Promise对象,返回根据节点属性名称获取的属性值。 |
Z
zaki 已提交
730

731 732 733 734
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

735 736
| 错误码ID   | 错误信息                          |
| ------- | ----------------------------- |
737 738
| 9300004 | This property does not exist. |

Z
zaki 已提交
739 740 741
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
742 743 744 745
import { ElementAttributeKeys } from '@ohos.application.AccessibilityExtensionAbility';

let attributeName: ElementAttributeKeys = 'bundleName';
let attributeValue: string;
Z
zaki 已提交
746
try {
Z
zhanghuiyu_5451 已提交
747 748 749 750 751 752
  rootElement.attributeValue(attributeName).then((data: string) => {
    console.log('get attribute value by name success');
    attributeValue = data;
  }).catch((err: object) => {
    console.error(`failed to get attribute value, because ${JSON.stringify(err)}`);
  });
753
} catch (exception) {
Z
zhanghuiyu_5451 已提交
754
  console.error(`failed to get attribute value, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
755 756
}
```
J
jinqi6 已提交
757
### attributeValue
Z
zaki 已提交
758 759 760 761 762 763 764 765 766 767

attributeValue\<T extends keyof ElementAttributeValues>(attributeName: T, 
    callback: AsyncCallback\<ElementAttributeValues[T]>): void;

根据属性名称获取属性值,使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

768 769
| 参数名           | 类型                                       | 必填   | 说明                     |
| ------------- | ---------------------------------------- | ---- | ---------------------- |
Z
zhanghuiyu_5451 已提交
770
| attributeName | ElementAttributeKeys                         | 是    | 表示属性的名称。               |
771
| callback      | AsyncCallback&lt;ElementAttributeValues[T]&gt; | 是    | 回调函数,返回根据节点属性名称获取的属性值。 |
Z
zaki 已提交
772

773 774 775 776
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

777 778
| 错误码ID   | 错误信息                          |
| ------- | ----------------------------- |
779 780
| 9300004 | This property does not exist. |

Z
zaki 已提交
781
**示例:**
Z
zaki 已提交
782

Z
zaki 已提交
783
```ts
Z
zhanghuiyu_5451 已提交
784 785 786 787 788
import { ElementAttributeKeys } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let attributeName: ElementAttributeKeys = 'bundleName';
let attributeValue: string;
Z
zaki 已提交
789
try {
Z
zhanghuiyu_5451 已提交
790 791 792 793 794 795 796 797
  rootElement.attributeValue(attributeName, (err: BusinessError<void>, data: string) => {
    if (err) {
      console.error(`failed to get attribute value, because ${JSON.stringify(err)}`);
      return;
    }
    attributeValue = data;
    console.info('get attribute value success');
  });
798
} catch (exception) {
Z
zhanghuiyu_5451 已提交
799
  console.error(`failed to get attribute value, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
800 801
}
```
J
jinqi6 已提交
802
### actionNames
Z
zaki 已提交
803

804
actionNames(): Promise\<Array\<string>>;
Z
zaki 已提交
805

Z
zaki 已提交
806
获取节点元素支持的所有操作名称,使用Promise异步回调。
Z
zaki 已提交
807 808 809 810 811

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**返回值:**

812 813
| 类型                                 | 说明                         |
| ---------------------------------- | -------------------------- |
Z
zaki 已提交
814
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象,返回节点元素支持的所有操作名称。 |
Z
zaki 已提交
815 816 817 818

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
819 820 821 822
let actionNames: string[];
rootElement.actionNames().then((data: string[]) => {
  console.log('get action names success');
  actionNames = data;
Z
zhanghuiyu_5451 已提交
823
}).catch((err: object) => {
Z
zhanghuiyu_5451 已提交
824 825
  console.error(`failed to get action names because ${JSON.stringify(err)}`);
})
Z
zaki 已提交
826
```
J
jinqi6 已提交
827
### actionNames
Z
zaki 已提交
828

Z
zaki 已提交
829 830 831 832 833 834 835 836
actionNames(callback: AsyncCallback\<Array\<string>>): void;

获取节点元素支持的所有操作名称,使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

837 838 839
| 参数名      | 类型                                       | 必填   | 说明                    |
| -------- | ---------------------------------------- | ---- | --------------------- |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是    | 回调函数,返回节点元素支持的所有操作名称。 |
Z
zaki 已提交
840 841 842 843

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
844 845 846 847 848 849 850 851 852
let actionNames: string[];
rootElement.actionNames((err: BusinessError<void>, data: string[]) => {
  if (err) {
    console.error(`failed to get action names, because ${JSON.stringify(err)}`);
    return;
  }
  actionNames = data;
  console.info('get action names success');
})
Z
zaki 已提交
853
```
J
jinqi6 已提交
854
### performAction
Z
zaki 已提交
855

Z
zaki 已提交
856
performAction(actionName: string, parameters?: object): Promise\<void>;
Z
zaki 已提交
857

Z
zaki 已提交
858
根据操作名称执行某个操作,使用Promise异步回调。
Z
zaki 已提交
859 860 861 862 863

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

864
| 参数名         | 类型                                     | 必填   | 说明             |
Z
zaki 已提交
865
| ----------- | ---------------------------------------- | ---- | -------------- |
866
| actionName | string | 是    | 表示属性的名称,取值参考[Action](./js-apis-accessibility.md#action)
Z
zhanghuiyu 已提交
867
| parameters | object | 否    | 表示执行操作时所需要的参数;默认为空;当前版本暂不支持。     |
Z
zaki 已提交
868 869 870

**返回值:**

871 872
| 类型                  | 说明               |
| ------------------- | ---------------- |
Z
zaki 已提交
873
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zaki 已提交
874

875 876 877 878
**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

879 880
| 错误码ID   | 错误信息                          |
| ------- | ----------------------------- |
881 882
| 9300005 | This action is not supported. |

Z
zaki 已提交
883 884 885
**示例:**

```ts
Z
zhanghuiyu_5451 已提交
886
let actionName = 'action';
Z
zaki 已提交
887
try {
Z
zhanghuiyu_5451 已提交
888 889 890 891 892
  rootElement.performAction(actionName).then(() => {
    console.info('perform action success');
  }).catch((err: object) => {
    console.error(`failed to perform action, because ${JSON.stringify(err)}`);
  });
893
} catch (exception) {
Z
zhanghuiyu_5451 已提交
894
  console.error(`failed to perform action, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
895 896
}
```
J
jinqi6 已提交
897
### performAction
Z
zaki 已提交
898

Z
zaki 已提交
899
performAction(actionName: string, callback: AsyncCallback\<void>): void;
Z
zaki 已提交
900 901 902 903 904 905

根据操作名称执行某个操作,使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**
Z
zaki 已提交
906

907
| 参数名         | 类型                                     | 必填   | 说明             |
Z
zaki 已提交
908
| ----------- | ---------------------------------------- | ---- | -------------- |
909
| actionName | string | 是    | 表示属性的名称,取值参考[Action](./js-apis-accessibility.md#action)
Z
zaki 已提交
910
| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,表示执行指定操作的回调。|
911 912 913 914 915

**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

916 917
| 错误码ID   | 错误信息                          |
| ------- | ----------------------------- |
918
| 9300005 | This action is not supported. |
Z
zaki 已提交
919 920 921 922

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
923 924 925
import { BusinessError } from '@ohos.base';

let actionName = 'action';
Z
zaki 已提交
926
try {
Z
zhanghuiyu_5451 已提交
927 928 929 930 931 932 933
  rootElement.performAction(actionName, (err:BusinessError) => {
    if (err) {
      console.error(`failed to perform action, because ${JSON.stringify(err)}`);
      return;
    }
    console.info('perform action success');
  });
934
} catch (exception) {
Z
zhanghuiyu_5451 已提交
935
  console.error(`failed to perform action, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
936 937
}
```
J
jinqi6 已提交
938
### performAction
Z
zaki 已提交
939

Z
zaki 已提交
940
performAction(actionName: string, parameters: object, callback: AsyncCallback\<void>): void;
Z
zaki 已提交
941 942 943 944 945 946 947

根据操作名称执行某个操作,使用callback异步回调。

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

948 949 950
| 参数名        | 类型                        | 必填   | 说明                                       |
| ---------- | ------------------------- | ---- | ---------------------------------------- |
| actionName | string                    | 是    | 表示属性的名称,取值参考[Action](./js-apis-accessibility.md#action)。 |
Z
zhanghuiyu 已提交
951
| parameters | object                    | 是    | 表示执行操作时所需要的参数;默认为空;当前版本暂不支持。                  |
952
| callback   | AsyncCallback&lt;void&gt; | 是    | 回调函数,表示执行指定操作的回调。                        |
953 954 955 956 957

**错误码:**

以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)

958 959
| 错误码ID   | 错误信息                          |
| ------- | ----------------------------- |
960
| 9300005 | This action is not supported. |
Z
zaki 已提交
961 962 963 964

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
965 966
import { BusinessError } from '@ohos.base';

Z
zaki 已提交
967
let actionName = 'action';
Z
zhanghuiyu_5451 已提交
968
let parameters: object = [];
Z
zaki 已提交
969
try {
Z
zhanghuiyu_5451 已提交
970 971 972 973 974 975 976
  rootElement.performAction(actionName, parameters, (err: BusinessError<void>) => {
    if (err) {
      console.error(`failed to perform action, because ${JSON.stringify(err)}`);
      return;
    }
    console.info('perform action success');
  });
977
} catch (exception) {
Z
zhanghuiyu_5451 已提交
978
  console.error(`failed to perform action, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
979 980
}
```
J
jinqi6 已提交
981
### findElement('content')
Z
zaki 已提交
982

983
findElement(type: 'content', condition: string): Promise\<Array\<AccessibilityElement>>;
Z
zaki 已提交
984

985
根据节点内容查询所有节点元素,使用Promise异步回调。
Z
zaki 已提交
986 987 988 989 990

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

991 992 993 994
| 参数名       | 类型     | 必填   | 说明                            |
| --------- | ------ | ---- | ----------------------------- |
| type      | string | 是    | 固定为'content', 表示查找的类型为节点元素内容。 |
| condition | string | 是    | 表示查找的条件。                      |
Z
zaki 已提交
995 996 997

**返回值:**

998 999
| 类型                                       | 说明                            |
| ---------------------------------------- | ----------------------------- |
Z
zaki 已提交
1000 1001 1002 1003 1004 1005
| Promise&lt;Array&lt;AccessibilityElement&gt;&gt; | Promise对象,返回满足指定查询关键字的所有节点元素。 |

**示例:**

```ts
let condition = 'keyword';
Z
zhanghuiyu_5451 已提交
1006
let elements: AccessibilityElement[];
Z
zaki 已提交
1007
try {
Z
zhanghuiyu_5451 已提交
1008 1009 1010 1011 1012 1013
  rootElement.findElement('content', condition).then((data: AccessibilityElement[]) => {
    elements = data;
    console.log('find element success');
  }).catch((err: object) => {
    console.error(`failed to find element, because ${JSON.stringify(err)}`);
  });
1014
} catch (exception) {
Z
zhanghuiyu_5451 已提交
1015
  console.error(`failed to find element, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
1016 1017
}
```
J
jinqi6 已提交
1018
### findElement('content')
Z
zaki 已提交
1019 1020 1021 1022

findElement(type: 'content', condition: string, callback: AsyncCallback\<Array\<AccessibilityElement>>): void;

根据节点内容查询所有节点元素。
Z
zaki 已提交
1023 1024 1025 1026 1027

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

1028 1029 1030 1031 1032
| 参数名       | 类型                                       | 必填   | 说明                           |
| --------- | ---------------------------------------- | ---- | ---------------------------- |
| type      | string                                   | 是    | 固定为'content',表示查找的类型为节点元素内容。 |
| condition | string                                   | 是    | 表示查找的条件。                     |
| callback  | AsyncCallback&lt;Array&lt;AccessibilityElement&gt;&gt; | 是    | 回调函数,返回满足指定查询关键字的所有节点元素。     |
Z
zaki 已提交
1033 1034 1035 1036

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
1037 1038
import { BusinessError } from '@ohos.base';

Z
zaki 已提交
1039
let condition = 'keyword';
Z
zhanghuiyu_5451 已提交
1040
let elements: AccessibilityElement[];
Z
zaki 已提交
1041
try {
Z
zhanghuiyu_5451 已提交
1042 1043 1044 1045 1046 1047 1048 1049
  rootElement.findElement('content', condition, (err: BusinessError<void>, data: AccessibilityElement[]) => {
    if (err) {
      console.error(`failed to find element, because ${JSON.stringify(err)}`);
      return;
    }
    elements = data;
    console.info('find element success');
  });
1050
} catch (exception) {
Z
zhanghuiyu_5451 已提交
1051
  console.error(`failed to find element, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
1052 1053
}
```
J
jinqi6 已提交
1054
### findElement('focusType')
Z
zaki 已提交
1055 1056 1057

findElement(type: 'focusType', condition: FocusType): Promise\<AccessibilityElement>;

1058
根据焦点元素类型查询节点元素,使用Promise异步回调。
Z
zaki 已提交
1059 1060 1061 1062 1063

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

1064 1065 1066 1067
| 参数名       | 类型                      | 必填   | 说明                                 |
| --------- | ----------------------- | ---- | ---------------------------------- |
| type      | string                  | 是    | 固定为'focusType', 表示查询的类型为节点的焦点元素类型。 |
| condition | [FocusType](#focustype) | 是    | 表示查询焦点元素的类型。                       |
Z
zaki 已提交
1068 1069 1070

**返回值:**

1071 1072
| 类型                                  | 说明                             |
| ----------------------------------- | ------------------------------ |
Z
zaki 已提交
1073
| Promise&lt;AccessibilityElement&gt; | Promise对象,返回满足指定查询焦点元素类型的节点元素。 |
Z
zaki 已提交
1074 1075 1076 1077

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
1078 1079 1080 1081
import { FocusType } from '@ohos.application.AccessibilityExtensionAbility';

let condition: FocusType = 'normal';
let element: AccessibilityElement;
Z
zaki 已提交
1082
try {
Z
zhanghuiyu_5451 已提交
1083 1084 1085 1086 1087 1088
  rootElement.findElement('focusType', condition).then((data: AccessibilityElement) => {
    element = data;
    console.log('find element success');
  }).catch((err: object) => {
    console.error(`failed to find element, because ${JSON.stringify(err)}`);
  });
1089
} catch (exception) {
Z
zhanghuiyu_5451 已提交
1090
  console.error(`failed to find element, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
1091 1092
}
```
J
jinqi6 已提交
1093
### findElement('focusType')
Z
zaki 已提交
1094 1095 1096

findElement(type: 'focusType', condition: FocusType, callback: AsyncCallback\<AccessibilityElement>): void;

1097
根据焦点元素类型查询节点元素,使用callback异步回调。
Z
zaki 已提交
1098 1099 1100 1101 1102

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

1103 1104 1105 1106 1107
| 参数名       | 类型                                       | 必填   | 说明                                 |
| --------- | ---------------------------------------- | ---- | ---------------------------------- |
| type      | string                                   | 是    | 固定为'focusType', 表示查询的类型为节点的焦点元素类型。 |
| condition | [FocusType](#focustype)                  | 是    | 表示查询焦点元素的类型。                       |
| callback  | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回满足指定查询焦点元素类型的节点元素。          |
Z
zaki 已提交
1108 1109 1110 1111

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
1112 1113 1114 1115 1116
import { FocusType } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let condition: FocusType = 'normal';
let element: AccessibilityElement;
Z
zaki 已提交
1117
try {
Z
zhanghuiyu_5451 已提交
1118 1119 1120 1121 1122 1123 1124 1125
  rootElement.findElement('focusType', condition, (err: BusinessError<void>, data: AccessibilityElement) => {
    if (err) {
      console.error(`failed to find element, because ${JSON.stringify(err)}`);
      return;
    }
    element = data;
    console.info('find element success');
  });
1126
} catch (exception) {
Z
zhanghuiyu_5451 已提交
1127
  console.error(`failed to find element, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
1128 1129
}
```
J
jinqi6 已提交
1130
### findElement('focusDirection')
Z
zaki 已提交
1131 1132 1133

findElement(type: 'focusDirection', condition: FocusDirection): Promise\<AccessibilityElement>;

1134
根据下一焦点元素方向查询节点元素,使用Promise异步回调。
Z
zaki 已提交
1135 1136 1137 1138 1139

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

1140 1141 1142 1143
| 参数名       | 类型                                | 必填   | 说明                                       |
| --------- | --------------------------------- | ---- | ---------------------------------------- |
| type      | string                            | 是    | 固定为'focusDirection', 表示查询的类型为节点的下一焦点元素方向。 |
| condition | [FocusDirection](#focusdirection) | 是    | 表示查询下一焦点元素的方向。                           |
Z
zaki 已提交
1144 1145 1146

**返回值:**

1147 1148
| 类型                                  | 说明                               |
| ----------------------------------- | -------------------------------- |
Z
zaki 已提交
1149 1150 1151 1152 1153
| Promise&lt;AccessibilityElement&gt; | Promise对象,返回满足指定查询下一焦点元素方向的节点元素。 |

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
1154 1155 1156 1157
import { FocusDirection } from '@ohos.application.AccessibilityExtensionAbility';

let condition: FocusDirection = 'up';
let element: AccessibilityElement;
Z
zaki 已提交
1158
try {
Z
zhanghuiyu_5451 已提交
1159 1160 1161 1162 1163 1164
  rootElement.findElement('focusDirection', condition).then((data: AccessibilityElement) => {
    element = data;
    console.log('find element success');
  }).catch((err: object) => {
    console.error(`failed to find element, because ${JSON.stringify(err)}`);
  });
1165
} catch (exception) {
Z
zhanghuiyu_5451 已提交
1166
  console.error(`failed to find element, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
1167 1168
}
```
J
jinqi6 已提交
1169
### findElement('focusDirection')
Z
zaki 已提交
1170 1171 1172

findElement(type: 'focusDirection', condition: FocusDirection, callback: AsyncCallback\<AccessibilityElement>): void;

1173
根据下一焦点元素方向查询所有节点元素,使用callback异步回调。
Z
zaki 已提交
1174 1175 1176 1177 1178

**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core

**参数:**

1179 1180 1181 1182 1183
| 参数名       | 类型                                       | 必填   | 说明                                       |
| --------- | ---------------------------------------- | ---- | ---------------------------------------- |
| type      | string                                   | 是    | 固定为'focusDirection', 表示查询的类型为节点的下一焦点元素方向。 |
| condition | [FocusDirection](#focusdirection)        | 是    | 表示下一查询焦点元素的方向。                           |
| callback  | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回满足指定查询下一焦点元素方向的节点元素。              |
Z
zaki 已提交
1184 1185 1186 1187

**示例:**

```ts
Z
zhanghuiyu_5451 已提交
1188 1189 1190 1191 1192
import { FocusDirection } from '@ohos.application.AccessibilityExtensionAbility';
import { BusinessError } from '@ohos.base';

let condition: FocusDirection = 'up';
let elements: AccessibilityElement;
Z
zaki 已提交
1193
try {
Z
zhanghuiyu_5451 已提交
1194 1195 1196 1197 1198 1199 1200 1201
  rootElement.findElement('focusDirection', condition, (err: BusinessError<void>, data: AccessibilityElement) => {
    if (err) {
      console.error(`failed to find element, because ${JSON.stringify(err)}`);
      return;
    }
    elements = data;
    console.info('find element success');
  });
1202
} catch (exception) {
Z
zhanghuiyu_5451 已提交
1203
  console.error(`failed to find element, because ${JSON.stringify(exception)}`);
Z
zaki 已提交
1204 1205
}
```