輔助功能擴(kuò)展上下文

2024-01-23 17:32 更新

AccessibilityExtensionContext是AccessibilityExtensionAbility上下文環(huán)境,繼承自ExtensionContext。

輔助功能擴(kuò)展上下文模塊提供輔助功能擴(kuò)展的上下文環(huán)境的能力,包括允許配置輔助應(yīng)用關(guān)注信息類型、查詢節(jié)點(diǎn)信息、手勢(shì)注入等。

說明

本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

本模塊接口僅可在Stage模型下使用。

使用說明

在使用AccessibilityExtensionContext的功能前,需要通過AccessibilityExtensionAbility子類實(shí)例獲取AccessibilityExtensionContex的實(shí)例。

  1. import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
  2. let axContext;
  3. class MainAbility extends AccessibilityExtensionAbility {
  4. onConnect(): void {
  5. console.log('AxExtensionAbility onConnect');
  6. axContext = this.context;
  7. }
  8. }

FocusDirection

表示查詢下一焦點(diǎn)元素的方向。

系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.BarrierFree.Accessibility.Core

名稱

說明

up

表示向上查詢。

down

表示向下查詢。

left

表示向左查詢。

right

表示向右查詢。

forward

表示向前查詢。

backward

表示向后查詢。

FocusType

表示查詢焦點(diǎn)元素的類型。

系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.BarrierFree.Accessibility.Core

名稱

說明

accessibility

表示無障礙的焦點(diǎn)類型。

normal

表示普通的焦點(diǎn)類型。

Rect

表示矩形區(qū)域。

系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.BarrierFree.Accessibility.Core

名稱

類型

可讀

可寫

說明

left

number

矩形區(qū)域的左邊界。

top

number

矩形區(qū)域的上邊界。

width

number

矩形區(qū)域的寬度。

height

number

矩形區(qū)域的高度。

WindowType

表示窗口的類型。

系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.BarrierFree.Accessibility.Core

名稱

說明

application

表示應(yīng)用窗口類型。

system

表示系統(tǒng)窗口類型。

AccessibilityExtensionContext.setTargetBundleName

setTargetBundleName(targetNames: Array<string>): Promise<void>;

設(shè)置關(guān)注的目標(biāo)包名,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

targetNames

Array<string>

關(guān)注的目標(biāo)包名。

返回值:

類型

說明

Promise<void>

無返回結(jié)果的Promise對(duì)象。

示例:

  1. let targetNames = ['com.ohos.xyz'];
  2. try {
  3. axContext.setTargetBundleName(targetNames).then(() => {
  4. console.info('set target bundle names success');
  5. }).catch((err) => {
  6. console.error('failed to set target bundle names, because ' + JSON.stringify(err));
  7. });
  8. } catch (exception) {
  9. console.error('failed to set target bundle names, because ' + JSON.stringify(exception));
  10. };

AccessibilityExtensionContext.setTargetBundleName

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

設(shè)置關(guān)注的目標(biāo)包名,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

targetNames

Array<string>

關(guān)注的目標(biāo)包名。

callback

AsyncCallback<void>

回調(diào)函數(shù),如果設(shè)置關(guān)注的目標(biāo)包名失敗,則AsyncCallback中err有數(shù)據(jù)返回。

示例:

  1. let targetNames = ['com.ohos.xyz'];
  2. try {
  3. axContext.setTargetBundleName(targetNames, (err, data) => {
  4. if (err && err.code) {
  5. console.error('failed to set target bundle names, because ' + JSON.stringify(err));
  6. return;
  7. }
  8. console.info('set target bundle names success');
  9. });
  10. } catch (exception) {
  11. console.error('failed to set target bundle names, because ' + JSON.stringify(exception));
  12. };

AccessibilityExtensionContext.getFocusElement

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

獲取焦點(diǎn)元素, 使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

isAccessibilityFocus

boolean

獲取的是否是無障礙焦點(diǎn)元素,默認(rèn)為否。

返回值:

類型

說明

Promise<AccessibilityElement>

Promise對(duì)象,返回當(dāng)前對(duì)應(yīng)的焦點(diǎn)元素。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let focusElement;
  2. try {
  3. axContext.getFocusElement().then((data) => {
  4. focusElement = data;
  5. console.log('get focus element success');
  6. }).catch((err) => {
  7. console.error('failed to get focus element, because ' + JSON.stringify(err));
  8. });
  9. } catch (exception) {
  10. console.error('failed to get focus element, because ' + JSON.stringify(exception));
  11. }

AccessibilityExtensionContext.getFocusElement

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

獲取焦點(diǎn)元素, 使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AccessibilityElement>

回調(diào)函數(shù),返回當(dāng)前對(duì)應(yīng)的焦點(diǎn)元素。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let focusElement;
  2. try {
  3. axContext.getFocusElement((err, data) => {
  4. if (err && err.code) {
  5. console.error('failed to get focus element, because ' + JSON.stringify(err));
  6. return;
  7. }
  8. focusElement = data;
  9. console.info('get focus element success');
  10. });
  11. } catch (exception) {
  12. console.error('failed to get focus element, because ' + JSON.stringify(exception));
  13. }

AccessibilityExtensionContext.getFocusElement

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

獲取焦點(diǎn)元素, 使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

isAccessibilityFocus

boolean

獲取的是否是無障礙焦點(diǎn)元素。

callback

AsyncCallback<AccessibilityElement>

回調(diào)函數(shù),返回當(dāng)前對(duì)應(yīng)的焦點(diǎn)元素。

示例:

  1. let focusElement;
  2. let isAccessibilityFocus = true;
  3. try {
  4. axContext.getFocusElement(isAccessibilityFocus, (err, data) => {
  5. if (err && err.code) {
  6. console.error('failed to get focus element, because ' + JSON.stringify(err));
  7. return;
  8. }
  9. focusElement = data;
  10. console.info('get focus element success');
  11. });
  12. } catch (exception) {
  13. console.error('failed to get focus element, because ' + JSON.stringify(exception));
  14. }

AccessibilityExtensionContext.getWindowRootElement

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

獲取指定窗口的根節(jié)點(diǎn)元素, 使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

windowId

number

指定窗口的編號(hào),未指定則從當(dāng)前活躍窗口獲取。

返回值:

類型

說明

Promise<AccessibilityElement>

Promise對(duì)象,返回指定屏幕的所有窗口。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let rootElement;
  2. try {
  3. axContext.getWindowRootElement().then((data) => {
  4. rootElement = data;
  5. console.log('get root element of the window success');
  6. }).catch((err) => {
  7. console.error('failed to get root element of the window, because ' + JSON.stringify(err));
  8. });
  9. } catch (exception) {
  10. console.error('failed to get root element of the window, ' + JSON.stringify(exception));
  11. }

AccessibilityExtensionContext.getWindowRootElement

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

獲取指定窗口的根節(jié)點(diǎn)元素, 使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AccessibilityElement>

回調(diào)函數(shù),返回指定窗口的根節(jié)點(diǎn)元素。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let rootElement;
  2. try {
  3. axContext.getWindowRootElement((err, data) => {
  4. if (err && err.code) {
  5. console.error('failed to get root element of the window, because ' + JSON.stringify(err));
  6. return;
  7. }
  8. rootElement = data;
  9. console.info('get root element of the window success');
  10. });
  11. } catch (exception) {
  12. console.error('failed to get root element of the window, because ' + JSON.stringify(exception));
  13. }

AccessibilityExtensionContext.getWindowRootElement

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

獲取指定屏幕中的所有窗口, 使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

windowId

number

指定窗口的編號(hào),未指定則從當(dāng)前活躍窗口獲取。

callback

AsyncCallback<AccessibilityElement>

回調(diào)函數(shù),返回指定窗口的根節(jié)點(diǎn)元素。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let rootElement;
  2. let windowId = 10;
  3. try {
  4. axContext.getWindowRootElement(windowId, (err, data) => {
  5. if (err && err.code) {
  6. console.error('failed to get root element of the window, because ' + JSON.stringify(err));
  7. return;
  8. }
  9. rootElement = data;
  10. console.info('get root element of the window success');
  11. });
  12. } catch (exception) {
  13. console.error('failed to get root element of the window, because ' + JSON.stringify(exception));
  14. }

AccessibilityExtensionContext.getWindows

getWindows(displayId?: number): Promise<Array<AccessibilityElement>>;

獲取指定屏幕中的所有窗口, 使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

displayId

number

指定的屏幕編號(hào),未指定則從默認(rèn)主屏幕獲取。

返回值:

類型

說明

Promise<Array<AccessibilityElement>>

Promise對(duì)象,返回指定屏幕的所有窗口。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let windows;
  2. try {
  3. axContext.getWindows().then((data) => {
  4. windows = data;
  5. console.log('get windows success');
  6. }).catch((err) => {
  7. console.error('failed to get windows, because ' + JSON.stringify(err));
  8. });
  9. } catch (exception) {
  10. console.error('failed to get windows, because ' + JSON.stringify(exception));
  11. }

AccessibilityExtensionContext.getWindows

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

獲取指定屏幕中的所有窗口, 使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<Array<AccessibilityElement>>

回調(diào)函數(shù),返回指定屏幕的所有窗口。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let windows;
  2. try {
  3. axContext.getWindows((err, data) => {
  4. if (err && err.code) {
  5. console.error('failed to get windows, because ' + JSON.stringify(err));
  6. return;
  7. }
  8. windows = data;
  9. console.info('get windows success');
  10. });
  11. } catch (exception) {
  12. console.error('failed to get windows, because ' + JSON.stringify(exception));
  13. }

AccessibilityExtensionContext.getWindows

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

獲取指定屏幕中的所有窗口, 使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

displayId

number

指定的屏幕編號(hào),未指定則從默認(rèn)主屏幕獲取。

callback

AsyncCallback<Array<AccessibilityElement>>

回調(diào)函數(shù),返回指定屏幕的所有窗口。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. let windows;
  2. let displayId = 10;
  3. try {
  4. axContext.getWindows(displayId, (err, data) => {
  5. if (err && err.code) {
  6. console.error('failed to get windows, because ' + JSON.stringify(err));
  7. return;
  8. }
  9. windows = data;
  10. console.info('get windows success');
  11. });
  12. } catch (exception) {
  13. console.error('failed to get windows, because ' + JSON.stringify(exception));
  14. }

AccessibilityExtensionContext.injectGesture

injectGesture(gesturePath: GesturePath): Promise<void>;

注入手勢(shì),使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

gesturePath

GesturePath

表示手勢(shì)的路徑信息。

返回值:

類型

說明

Promise<void>

無返回結(jié)果的Promise對(duì)象。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. import GesturePath from '@ohos.accessibility.GesturePath';
  2. import GesturePoint from '@ohos.accessibility.GesturePoint';
  3. let gesturePath = new GesturePath.GesturePath(100);
  4. try {
  5. for (let i = 0; i < 10; i++) {
  6. let gesturePoint = new GesturePoint.GesturePoint(100, i * 200);
  7. gesturePath.points.push(gesturePoint);
  8. }
  9. axContext.injectGesture(gesturePath).then(() => {
  10. console.info('inject gesture success');
  11. }).catch((err) => {
  12. console.error('failed to inject gesture, because ' + JSON.stringify(err));
  13. });
  14. } catch (exception) {
  15. console.error('failed to inject gesture, because ' + JSON.stringify(exception));
  16. }

AccessibilityExtensionContext.injectGesture

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

注入手勢(shì),使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

gesturePath

GesturePath

表示手勢(shì)的路徑信息。

callback

AsyncCallback<void>

回調(diào)函數(shù),表示注入手勢(shì)執(zhí)行結(jié)果的回調(diào)。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300003

Do not have accessibility right for this operation.

示例:

  1. import GesturePath from '@ohos.accessibility.GesturePath';
  2. import GesturePoint from '@ohos.accessibility.GesturePoint';
  3. let gesturePath = new GesturePath.GesturePath(100);
  4. try {
  5. for (let i = 0; i < 10; i++) {
  6. let gesturePoint = new GesturePoint.GesturePoint(100, i * 200);
  7. gesturePath.points.push(gesturePoint);
  8. }
  9. axContext.injectGesture(gesturePath, (err, data) => {
  10. if (err && err.code) {
  11. console.error('failed to inject gesture, because ' + JSON.stringify(err));
  12. return;
  13. }
  14. console.info('inject gesture success');
  15. });
  16. } catch (exception) {
  17. console.error('failed to inject gesture, because ' + JSON.stringify(exception));
  18. }

AccessibilityElement9+

無障礙節(jié)點(diǎn)元素, 在調(diào)用AccessibilityElement的方法前,需要先通過AccessibilityExtensionContext.getFocusElement()或者AccessibilityExtensionContext.getWindowRootElement()獲取AccessibilityElement實(shí)例。

系統(tǒng)能力:以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.BarrierFree.Accessibility.Core

attributeNames

attributeNames<T extends keyof ElementAttributeValues>(): Promise<Array<T>>;

獲取節(jié)點(diǎn)元素的所有屬性名稱,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

返回值:

類型

說明

Promise<Array<T>>

Promise對(duì)象,返回節(jié)點(diǎn)元素的所有屬性名稱。

示例:

  1. let rootElement;
  2. let attributeNames;
  3. rootElement.attributeNames().then((data) => {
  4. console.log('get attribute names success');
  5. attributeNames = data;
  6. }).catch((err) => {
  7. console.log('failed to get attribute names, because ' + JSON.stringify(err));
  8. });

attributeNames

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

獲取節(jié)點(diǎn)元素的所有屬性名稱,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<Array<T>>

回調(diào)函數(shù),返回節(jié)點(diǎn)元素的所有屬性名稱。

示例:

  1. let rootElement;
  2. let attributeNames;
  3. rootElement.attributeNames((err, data) => {
  4. if (err) {
  5. console.error('failed to get attribute names, because ' + JSON.stringify(err));
  6. return;
  7. }
  8. attributeNames = data;
  9. console.info('get attribute names success');
  10. });

AccessibilityElement.attributeValue

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

根據(jù)屬性名稱獲取屬性值,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

attributeName

T

表示屬性的名稱。

返回值:

類型

說明

Promise<ElementAttributeValues[T]>

Promise對(duì)象,返回根據(jù)節(jié)點(diǎn)屬性名稱獲取的屬性值。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

9300004

This property does not exist.

示例:

  1. let attributeName = 'name';
  2. let attributeValue;
  3. let rootElement;
  4. try {
  5. rootElement.attributeValue(attributeName).then((data) => {
  6. console.log('get attribute value by name success');
  7. attributeValue = data;
  8. }).catch((err) => {
  9. console.log('failed to get attribute value, because ' + JSON.stringify(err));
  10. });
  11. } catch (exception) {
  12. console.log('failed to get attribute value, because ' + JSON.stringify(exception));
  13. }

AccessibilityElement.attributeValue

attributeValue<T extends keyof ElementAttributeValues>(attributeName: T,

callback: AsyncCallback<ElementAttributeValues[T]>): void;

根據(jù)屬性名稱獲取屬性值,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

attributeName

T

表示屬性的名稱。

callback

AsyncCallback<ElementAttributeValues[T]>

回調(diào)函數(shù),返回根據(jù)節(jié)點(diǎn)屬性名稱獲取的屬性值。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

9300004

This property does not exist.

示例:

  1. let rootElement;
  2. let attributeValue;
  3. let attributeName = 'name';
  4. try {
  5. rootElement.attributeValue(attributeName, (err, data) => {
  6. if (err) {
  7. console.error('failed to get attribute value, because ' + JSON.stringify(err));
  8. return;
  9. }
  10. attributeValue = data;
  11. console.info('get attribute value success');
  12. });
  13. } catch (exception) {
  14. console.log('failed to get attribute value, because ' + JSON.stringify(exception));
  15. }

actionNames

actionNames(): Promise<Array<string>>;

獲取節(jié)點(diǎn)元素支持的所有操作名稱,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

返回值:

類型

說明

Promise<Array<string>>

Promise對(duì)象,返回節(jié)點(diǎn)元素支持的所有操作名稱。

示例:

  1. let rootElement;
  2. let actionNames;
  3. rootElement.actionNames().then((data) => {
  4. console.log('get action names success');
  5. actionNames = data;
  6. }).catch((err) => {
  7. console.log('failed to get action names because ' + JSON.stringify(err));
  8. });

actionNames

actionNames(callback: AsyncCallback<Array<string>>): void;

獲取節(jié)點(diǎn)元素支持的所有操作名稱,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<Array<string>>

回調(diào)函數(shù),返回節(jié)點(diǎn)元素支持的所有操作名稱。

示例:

  1. let rootElement;
  2. let actionNames;
  3. rootElement.actionNames((err, data) => {
  4. if (err) {
  5. console.error('failed to get action names, because ' + JSON.stringify(err));
  6. return;
  7. }
  8. actionNames = data;
  9. console.info('get action names success');
  10. });

performAction

performAction(actionName: string, parameters?: object): Promise<void>;

根據(jù)操作名稱執(zhí)行某個(gè)操作,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

actionName

string

表示屬性的名稱。

parameters

object

表示執(zhí)行操作時(shí)所需要的參數(shù);當(dāng)前版本暫不支持。

返回值:

類型

說明

Promise<void>

無返回結(jié)果的Promise對(duì)象。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼。

錯(cuò)誤碼ID

錯(cuò)誤信息

9300005

This action is not supported.

示例:

  1. let rootElement;
  2. try {
  3. rootElement.performAction('action').then((data) => {
  4. console.info('perform action success');
  5. }).catch((err) => {
  6. console.log('failed to perform action, because ' + JSON.stringify(err));
  7. });
  8. } catch (exception) {
  9. console.log('failed to perform action, because ' + JSON.stringify(exception));
  10. }

performAction

performAction(actionName: string, callback: AsyncCallback<void>): void;

根據(jù)操作名稱執(zhí)行某個(gè)操作,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

actionName

string

表示屬性的名稱。

callback

AsyncCallback<void>

回調(diào)函數(shù),表示執(zhí)行指定操作的回調(diào)。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

9300005

This action is not supported.

示例:

  1. let rootElement;
  2. try {
  3. rootElement.performAction('action', (err, data) => {
  4. if (err) {
  5. console.error('failed to perform action, because ' + JSON.stringify(err));
  6. return;
  7. }
  8. console.info('perform action success');
  9. });
  10. } catch (exception) {
  11. console.log('failed to perform action, because ' + JSON.stringify(exception));
  12. }

performAction

performAction(actionName: string, parameters: object, callback: AsyncCallback<void>): void;

根據(jù)操作名稱執(zhí)行某個(gè)操作,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

actionName

string

表示屬性的名稱。

parameters

object

表示執(zhí)行操作時(shí)所需要的參數(shù);當(dāng)前版本暫不支持。

callback

AsyncCallback<void>

回調(diào)函數(shù),表示執(zhí)行指定操作的回調(diào)。

錯(cuò)誤碼:

以下錯(cuò)誤碼的詳細(xì)介紹請(qǐng)參見無障礙子系統(tǒng)錯(cuò)誤碼

錯(cuò)誤碼ID

錯(cuò)誤信息

9300005

This action is not supported.

示例:

  1. let rootElement;
  2. let actionName = 'action';
  3. let parameters = {
  4. 'setText': 'test text'
  5. };
  6. try {
  7. rootElement.performAction(actionName, parameters, (err, data) => {
  8. if (err) {
  9. console.error('failed to perform action, because ' + JSON.stringify(err));
  10. return;
  11. }
  12. console.info('perform action success');
  13. });
  14. } catch (exception) {
  15. console.log('failed to perform action, because ' + JSON.stringify(exception));
  16. }

findElement('content')

findElement(type: 'content', condition: string): Promise<Array<AccessibilityElement>>;

根據(jù)節(jié)點(diǎn)內(nèi)容查詢所有節(jié)點(diǎn)元素,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

固定為'content', 表示查找的類型為節(jié)點(diǎn)元素內(nèi)容。

condition

string

表示查找的條件。

返回值:

類型

說明

Promise<Array<AccessibilityElement>>

Promise對(duì)象,返回滿足指定查詢關(guān)鍵字的所有節(jié)點(diǎn)元素。

示例:

  1. let rootElement;
  2. let type = 'content';
  3. let condition = 'keyword';
  4. let elements;
  5. try {
  6. rootElement.findElement(type, condition).then((data) => {
  7. elements = data;
  8. console.log('find element success');
  9. }).catch((err) => {
  10. console.log('failed to find element, because ' + JSON.stringify(err));
  11. });
  12. } catch (exception) {
  13. console.log('failed to find element, because ' + JSON.stringify(exception));
  14. }

findElement('content')

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

根據(jù)節(jié)點(diǎn)內(nèi)容查詢所有節(jié)點(diǎn)元素。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

固定為'content',表示查找的類型為節(jié)點(diǎn)元素內(nèi)容。

condition

string

表示查找的條件。

callback

AsyncCallback<Array<AccessibilityElement>>

回調(diào)函數(shù),返回滿足指定查詢關(guān)鍵字的所有節(jié)點(diǎn)元素。

示例:

  1. let rootElement;
  2. let type = 'content';
  3. let condition = 'keyword';
  4. let elements;
  5. try {
  6. rootElement.findElement(type, condition, (err, data) => {
  7. if (err) {
  8. console.error('failed to find element, because ' + JSON.stringify(err));
  9. return;
  10. }
  11. elements = data;
  12. console.info('find element success');
  13. });
  14. } catch (exception) {
  15. console.log('failed to find element, because ' + JSON.stringify(exception));
  16. }

findElement('focusType')

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

根據(jù)焦點(diǎn)元素類型查詢節(jié)點(diǎn)元素,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

固定為'focusType', 表示查詢的類型為節(jié)點(diǎn)的焦點(diǎn)元素類型。

condition

FocusType

表示查詢焦點(diǎn)元素的類型。

返回值:

類型

說明

Promise<AccessibilityElement>

Promise對(duì)象,返回滿足指定查詢焦點(diǎn)元素類型的節(jié)點(diǎn)元素。

示例:

  1. let rootElement;
  2. let type = 'focusType';
  3. let condition = 'normal';
  4. let element;
  5. try {
  6. rootElement.findElement(type, condition).then((data) => {
  7. element = data;
  8. console.log('find element success');
  9. }).catch((err) => {
  10. console.log('failed to find element, because ' + JSON.stringify(err));
  11. });
  12. } catch (exception) {
  13. console.log('failed to find element, because ' + JSON.stringify(exception));
  14. }

findElement('focusType')

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

根據(jù)焦點(diǎn)元素類型查詢節(jié)點(diǎn)元素,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

固定為'focusType', 表示查詢的類型為節(jié)點(diǎn)的焦點(diǎn)元素類型。

condition

FocusType

表示查詢焦點(diǎn)元素的類型。

callback

AsyncCallback<AccessibilityElement>

回調(diào)函數(shù),返回滿足指定查詢焦點(diǎn)元素類型的節(jié)點(diǎn)元素。

示例:

  1. let rootElement;
  2. let type = 'focusType';
  3. let condition = 'normal';
  4. let element;
  5. try {
  6. rootElement.findElement(type, condition, (err, data) => {
  7. if (err) {
  8. console.error('failed to find element, because ' + JSON.stringify(err));
  9. return;
  10. }
  11. element = data;
  12. console.info('find element success');
  13. });
  14. } catch (exception) {
  15. console.log('failed to find element, because ' + JSON.stringify(exception));
  16. }

findElement('focusDirection')

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

根據(jù)下一焦點(diǎn)元素方向查詢節(jié)點(diǎn)元素,使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

固定為'focusDirection', 表示查詢的類型為節(jié)點(diǎn)的下一焦點(diǎn)元素方向。

condition

FocusDirection

表示查詢下一焦點(diǎn)元素的方向。

返回值:

類型

說明

Promise<AccessibilityElement>

Promise對(duì)象,返回滿足指定查詢下一焦點(diǎn)元素方向的節(jié)點(diǎn)元素。

示例:

  1. let rootElement;
  2. let type = 'focusDirection';
  3. let condition = 'up';
  4. let element;
  5. try {
  6. rootElement.findElement(type, condition).then((data) => {
  7. element = data;
  8. console.log('find element success');
  9. }).catch((err) => {
  10. console.log('failed to find element, because ' + JSON.stringify(err));
  11. });
  12. } catch (exception) {
  13. console.log('failed to find element, because ' + JSON.stringify(exception));
  14. }

findElement('focusDirection')

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

根據(jù)下一焦點(diǎn)元素方向查詢所有節(jié)點(diǎn)元素,使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.BarrierFree.Accessibility.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

固定為'focusDirection', 表示查詢的類型為節(jié)點(diǎn)的下一焦點(diǎn)元素方向。

condition

FocusDirection

表示下一查詢焦點(diǎn)元素的方向。

callback

AsyncCallback<AccessibilityElement>

回調(diào)函數(shù),返回滿足指定查詢下一焦點(diǎn)元素方向的節(jié)點(diǎn)元素。

示例:

  1. let rootElement;
  2. let type = 'focusDirection';
  3. let condition = 'up';
  4. let elements;
  5. try {
  6. rootElement.findElement(type, condition, (err, data) => {
  7. if (err) {
  8. console.error('failed to find element, because ' + JSON.stringify(err));
  9. return;
  10. }
  11. elements = data;
  12. console.info('find element success');
  13. });
  14. } catch (exception) {
  15. console.log('failed to find element, because ' + JSON.stringify(exception));
  16. }
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)