1# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力) 2 3AccessibilityExtensionAbility基于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 38## AccessibilityElement<sup>10+</sup> 39 40[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)二级模块 41 42**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 43 44**示例:** 45 46```ts 47import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility'; 48 49let accessibilityElement: AccessibilityElement; 50``` 51 52## ElementAttributeValues<sup>10+</sup> 53 54[ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues)二级模块 55 56**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 57 58**示例:** 59 60```ts 61import { ElementAttributeValues } from '@ohos.application.AccessibilityExtensionAbility'; 62 63let elementAttributeValues: ElementAttributeValues; 64``` 65 66## FocusDirection<sup>10+</sup> 67 68[FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection)二级模块,表示查询下一焦点元素的方向。 69 70**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 71 72**示例:** 73 74```ts 75import { FocusDirection } from '@ohos.application.AccessibilityExtensionAbility'; 76 77let focusDirection: FocusDirection; 78``` 79 80## ElementAttributeKeys<sup>10+</sup> 81 82**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 83 84| 名称 | 类型 | 可读 | 可写 | 说明 | 85| ------- |----------------------------------------------------------------------------------------------------------------------| ---- | ---- |----------------------------------------------------| 86| ElementAttributeKeys | keyof [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues) | 是 | 否 | 表示ElementAttributeValues的key。 | 87 88 89**示例:** 90 91```ts 92import { ElementAttributeKeys } from '@ohos.application.AccessibilityExtensionAbility'; 93 94let elementAttributeKeys: ElementAttributeKeys; 95``` 96 97## FocusType<sup>10+</sup> 98 99[FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype)二级模块,表示查询焦点元素的类型。 100 101**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 102 103**示例:** 104 105```ts 106import { FocusType } from '@ohos.application.AccessibilityExtensionAbility'; 107 108let focusType: FocusType; 109``` 110 111## WindowType <sup>10+</sup> 112 113[WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype)二级模块,表示窗口的类型。 114 115**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 116 117**示例:** 118 119```ts 120import { WindowType } from '@ohos.application.AccessibilityExtensionAbility'; 121 122let windowType: WindowType; 123``` 124 125## Rect<sup>10+</sup> 126 127[Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)二级模块,表示矩形区域。 128 129**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 130 131**示例:** 132 133```ts 134import { Rect } from '@ohos.application.AccessibilityExtensionAbility'; 135 136let rect: Rect; 137``` 138 139## GestureType 140 141手势事件类型。 142 143**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 144 145| 名称 | 类型 | 描述 | 146| ------------- | ------------- | ------------------- | 147| left | string | 表示向左的手势。 | 148| leftThenRight | string | 表示先向左再向右的手势。 | 149| leftThenUp | string | 表示先向左再向上的手势。 | 150| leftThenDown | string | 表示先向左再向下的手势。 | 151| right | string | 表示向右的手势。 | 152| rightThenLeft | string | 表示先向右再向左的手势。 | 153| rightThenUp | string | 表示先向右再向上的手势。 | 154| rightThenDown | string | 表示先向右再向下的手势。 | 155| up | string | 表示向上的手势。 | 156| upThenLeft | string | 表示先向上再向左的手势。 | 157| upThenRight | string | 表示先向上再向右的手势。 | 158| upThenDown | string | 表示先向上再向下的手势。 | 159| down | string | 表示向下的手势。 | 160| downThenLeft | string | 表示先向下再向左的手势。 | 161| downThenRight | string | 表示先向下再向右的手势。 | 162| downThenUp | string | 表示先向下再向上的手势。 | 163| twoFingerSingleTap<sup>11+</sup> | string | 表示双指单击的手势。 | 164| twoFingerDoubleTap<sup>11+</sup> | string | 表示双指双击的手势。 | 165| twoFingerDoubleTapAndHold<sup>11+</sup> | string | 表示双指双击长按的手势。 | 166| twoFingerTripleTap<sup>11+</sup> | string | 表示双指三击的手势。 | 167| twoFingerTripleTapAndHold<sup>11+</sup> | string | 表示双指三击长按的手势。 | 168| threeFingerSingleTap<sup>11+</sup> | string | 表示三指单击的手势。 | 169| threeFingerDoubleTap<sup>11+</sup> | string | 表示三指双击的手势。 | 170| threeFingerDoubleTapAndHold<sup>11+</sup> | string | 表示三指双击长按的手势。 | 171| threeFingerTripleTap<sup>11+</sup> | string | 表示三指三击的手势。 | 172| threeFingerTripleTapAndHold<sup>11+</sup> | string | 表示三指三击长按的手势。 | 173| fourFingerSingleTap<sup>11+</sup> | string | 表示四指单击的手势。 | 174| fourFingerDoubleTap<sup>11+</sup> | string | 表示四指双击的手势。 | 175| fourFingerDoubleTapAndHold<sup>11+</sup> | string | 表示四指双击长按的手势。 | 176| fourFingerTripleTap<sup>11+</sup> | string | 表示四指三击的手势。 | 177| fourFingerTripleTapAndHold<sup>11+</sup> | string | 表示四指三击长按的手势。 | 178| threeFingerSwipeUp<sup>11+</sup> | string | 表示三指向上滑动的手势。 | 179| threeFingerSwipeDown<sup>11+</sup> | string | 表示三指向下滑动的手势。 | 180| threeFingerSwipeLeft<sup>11+</sup> | string | 表示三指向左滑动的手势。 | 181| threeFingerSwipeRight<sup>11+</sup> | string | 表示三指向右滑动的手势。 | 182| fourFingerSwipeUp<sup>11+</sup> | string | 表示四指向上滑动的手势。 | 183| fourFingerSwipeDown<sup>11+</sup> | string | 表示四指向下滑动的手势。 | 184| fourFingerSwipeLeft<sup>11+</sup> | string | 表示四指向左滑动的手势。 | 185| fourFingerSwipeRight<sup>11+</sup> | string | 表示四指向右滑动的手势。 | 186 187## PageUpdateType 188 189页面刷新类型。当前版本暂不支持。 190 191**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 192 193| 名称 | 类型 | 描述 | 194| ----------------- | ----------------- | ---------------- | 195| pageContentUpdate | string | 表示页面内容刷新。 | 196| pageStateUpdate | string | 表示页面状态刷新。 | 197 198## TouchGuideType 199 200触摸浏览事件类型。 201 202**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 203 204| 名称 | 类型 | 描述 | 205| ---------- | ---------- | ------------------- | 206| touchBegin | string | 表示触摸浏览时开始触摸。 | 207| touchEnd | string | 表示触摸浏览时结束触摸。 | 208 209## AccessibilityExtensionAbility.onConnect 210 211onConnect(): void; 212 213用户启用AccessibilityExtensionAbility时,系统服务完成连接后,回调此接口,可以该方法中执行初始化业务逻辑操作。该方法可以选择性重写。 214 215**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 216 217**示例:** 218 219```ts 220import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility'; 221 222class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 223 onConnect(): void { 224 console.log('AxExtensionAbility onConnect'); 225 } 226} 227``` 228 229## AccessibilityExtensionAbility.onDisconnect 230 231onDisconnect(): void; 232 233用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后,回调此接口,可以该方法中执行资源回收退出业务逻辑操作。该方法可以选择性重写。 234 235**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 236 237**示例:** 238 239```ts 240import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility'; 241 242class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 243 onDisconnect(): void { 244 console.log('AxExtensionAbility onDisconnect'); 245 } 246} 247``` 248 249## AccessibilityExtensionAbility.onAccessibilityEvent 250 251onAccessibilityEvent(event: AccessibilityEvent): void; 252 253在关注的应用及事件类型对应的事件发生时回调此接口,可以在该方法中根据事件信息进行业务逻辑处理。一般情况下需要重写该方法完成业务。 254 255**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 256 257**参数:** 258 259| 参数名 | 类型 | 必填 | 说明 | 260| ----- | ---------------------------------------- | ---- | --------------- | 261| event | [AccessibilityEvent](#accessibilityevent) | 是 | 无障碍事件回调函数。无返回值。 | 262 263**示例:** 264 265```ts 266import AccessibilityExtensionAbility , { AccessibilityEvent } from '@ohos.application.AccessibilityExtensionAbility'; 267 268class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 269 onAccessibilityEvent(event: AccessibilityEvent): void { 270 console.log('AxExtensionAbility onAccessibilityEvent'); 271 if (event.eventType === 'click') { 272 console.log('AxExtensionAbility onAccessibilityEvent: click'); 273 } 274 } 275} 276``` 277 278## AccessibilityExtensionAbility.onKeyEvent 279 280onKeyEvent(keyEvent: KeyEvent): boolean; 281 282在物理按键按下时回调此方法,可以在该方法中根据业务判断是否对事件进行拦截。 283 284**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 285 286**参数:** 287 288| 参数名 | 类型 | 必填 | 说明 | 289| -------- |--------------------------------------------------| ---- | ----------------------- | 290| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | 是 | 按键事件回调函数。返回true表示拦截此按键。 | 291 292**示例:** 293 294```ts 295import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility'; 296import { KeyEvent } from '@ohos.multimodalInput.keyEvent'; 297 298class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 299 onKeyEvent(keyEvent: KeyEvent): boolean { 300 console.log('AxExtensionAbility onKeyEvent'); 301 if (keyEvent.key.code === 16) { 302 console.log('AxExtensionAbility onKeyEvent: intercept 16'); 303 return true; 304 } 305 return false; 306 } 307} 308``` 309