• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)
2
3**AccessibilityExtensionAbility**基于ExtensionAbility框架,提供辅助功能业务的能力。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
13```
14
15## 属性
16
17**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
18
19| 名称      | 类型                                       | 可读   | 可写   | 说明           |
20| ------- | ---------------------------------------- | ---- | ---- | ------------ |
21| context | [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) | 是    | 否    | 表示辅助扩展能力上下文。 |
22
23## AccessibilityEvent
24
25辅助事件信息。
26
27**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
28
29### 属性
30
31| 名称      | 类型                                                         | 可读 | 可写 | 说明                                                         |
32| --------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
33| eventType | [accessibility.EventType](js-apis-accessibility.md#EventType) \| [accessibility.WindowUpdateType](js-apis-accessibility.md#WindowUpdateType)\| [TouchGuideType](#touchguidetype) \| [GestureType](#gesturetype) \| [PageUpdateType](#pageupdatetype) | 是   | 否   | 具体事件类型。<br />EventType:无障碍事件类型;<br />WindowUpdateType:窗口变化类型;TouchGuideType:触摸浏览事件类型;<br />GestureType:手势事件类型;<br />PageUpdateType:页面刷新类型,当前版本暂不支持。 |
34| target    | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9) | 是   | 否   | 发生事件的目标组件。                                         |
35| timeStamp | number                                                       | 是   | 否   | 事件时间戳。                                                 |
36
37## GestureType
38
39手势事件类型。
40
41**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
42
43| 名称            | 描述                  |
44| ------------- | ------------------- |
45| left          | 类型为字符串,表示向左的手势。     |
46| leftThenRight | 类型为字符串,表示先向左再向右的手势。 |
47| leftThenUp    | 类型为字符串,表示先向左再向上的手势。 |
48| leftThenDown  | 类型为字符串,表示先向左再向下的手势。 |
49| right         | 类型为字符串,表示向右的手势。     |
50| rightThenLeft | 类型为字符串,表示先向右再向左的手势。 |
51| rightThenUp   | 类型为字符串,表示先向右再向上的手势。 |
52| rightThenDown | 类型为字符串,表示先向右再向下的手势。 |
53| up            | 类型为字符串,表示向上的手势。     |
54| upThenLeft    | 类型为字符串,表示先向上再向左的手势。 |
55| upThenRight   | 类型为字符串,表示先向上再向右的手势。 |
56| upThenDown    | 类型为字符串,表示先向上再向下的手势。 |
57| down          | 类型为字符串,表示向下的手势。     |
58| downThenLeft  | 类型为字符串,表示先向下再向左的手势。 |
59| downThenRight | 类型为字符串,表示先向下再向右的手势。 |
60| downThenUp    | 类型为字符串,表示先向下再向上的手势。 |
61
62## PageUpdateType
63
64页面刷新类型;当前版本暂不支持。
65
66**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
67
68| 名称                | 描述               |
69| ----------------- | ---------------- |
70| pageContentUpdate | 类型为字符串,表示页面内容刷新。 |
71| pageStateUpdate   | 类型为字符串,表示页面状态刷新。 |
72
73## TouchGuideType
74
75触摸浏览事件类型。
76
77**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
78
79| 名称         | 描述                  |
80| ---------- | ------------------- |
81| touchBegin | 类型为字符串,表示触摸浏览时开始触摸。 |
82| touchEnd   | 类型为字符串,表示触摸浏览时结束触摸。 |
83
84## AccessibilityExtensionAbility.onConnect
85
86onConnect(): void;
87
88用户启用AccessibilityExtensionAbility时,系统服务完成连接后,回调此接口,可以该方法中执行初始化业务逻辑操作。该方法可以选择性重写。
89
90**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
91
92**示例:**
93
94```ts
95import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
96
97class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
98    onConnect(): void {
99        console.log('AxExtensionAbility onConnect');
100    }
101}
102```
103
104## AccessibilityExtensionAbility.onDisconnect
105
106onDisconnect(): void;
107
108用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后,回调此接口,可以该方法中执行资源回收退出业务逻辑操作。该方法可以选择性重写。
109
110**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
111
112**示例:**
113
114```ts
115import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
116
117class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
118    onDisconnect(): void {
119        console.log('AxExtensionAbility onDisconnect');
120    }
121}
122```
123
124## AccessibilityExtensionAbility.onAccessibilityEvent
125
126onAccessibilityEvent(event: AccessibilityEvent): void;
127
128在关注的应用及事件类型对应的事件发生时回调此接口,可以在该方法中根据事件信息进行业务逻辑处理。一般情况下需要重写该方法完成业务。
129
130**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
131
132**参数:**
133
134| 参数名   | 类型                                       | 必填   | 说明              |
135| ----- | ---------------------------------------- | ---- | --------------- |
136| event | [AccessibilityEvent](#accessibilityevent) | 是    | 无障碍事件回调函数。无返回值。 |
137
138**示例:**
139
140```ts
141import AccessibilityExtensionAbility , { AccessibilityEvent } from '@ohos.application.AccessibilityExtensionAbility';
142
143class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
144    onAccessibilityEvent(event: AccessibilityEvent): void {
145        console.log('AxExtensionAbility onAccessibilityEvent');
146        if (event.eventType === 'click') {
147            console.log('AxExtensionAbility onAccessibilityEvent: click');
148        }
149    }
150}
151```
152
153## AccessibilityExtensionAbility.onKeyEvent
154
155onKeyEvent(keyEvent: KeyEvent): boolean;
156
157在物理按键按下时回调此方法,可以在该方法中根据业务判断是否对事件进行拦截。
158
159**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
160
161**参数:**
162
163| 参数名      | 类型                                       | 必填   | 说明                      |
164| -------- | ---------------------------------------- | ---- | ----------------------- |
165| keyEvent | [KeyEvent](js-apis-keyevent.md#KeyEvent) | 是    | 按键事件回调函数。返回true表示拦截此按键。 |
166
167**示例:**
168
169```ts
170import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
171import { KeyEvent } from '@ohos.multimodalInput.keyEvent';
172
173class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
174    onKeyEvent(keyEvent: KeyEvent): boolean {
175        console.log('AxExtensionAbility onKeyEvent');
176        if (keyEvent.key.code === 16) {
177            console.log('AxExtensionAbility onKeyEvent: intercept 16');
178            return true;
179        }
180        return false;
181    }
182}
183```
184