輔助功能
說(shuō)明: 本模塊首批接口從 API version 7 開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點(diǎn)擊或者復(fù)制轉(zhuǎn)到。
導(dǎo)入模塊
import accessibility from '@ohos.accessibility';
AbilityState
輔助應(yīng)用狀態(tài)類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
名稱 | 描述 |
---|---|
enable | 輔助應(yīng)用已啟用。 |
disable | 輔助應(yīng)用已禁用。 |
install | 輔助應(yīng)用已安裝。 |
AbilityType
無(wú)障礙輔助應(yīng)用類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
名稱 | 描述 |
---|---|
audible | 表示具有聽覺(jué)反饋。 |
generic | 表示具有通用反饋。 |
haptic | 表示具有觸覺(jué)反饋。 |
spoken | 表示具有語(yǔ)音反饋。 |
visual | 表示具有視覺(jué)反饋。 |
AccessibilityAbilityInfo
輔助應(yīng)用信息。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
屬性
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
id | number | 是 | 否 | ability id。 |
name | string | 是 | 否 | ability 名。 |
bundleName | string | 是 | 否 | 包名。 |
abilityTypes | Array<[AbilityType]> | 是 | 否 | 輔助應(yīng)用類型。 |
capabilities | Array<[Capability]> | 是 | 否 | 輔助應(yīng)用能力列表。 |
description | string | 是 | 否 | 輔助應(yīng)用描述。 |
eventTypes | Array<[EventType]> | 是 | 否 | 輔助應(yīng)用關(guān)注的無(wú)障礙事件列表。 |
Action
應(yīng)用所支持的目標(biāo)動(dòng)作。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
名稱 | 描述 |
---|---|
click | 表示點(diǎn)擊操作。 |
longClick | 表示長(zhǎng)按操作。 |
scrollForward | 表示向前滾動(dòng)操作。 |
scrollBackward | 表示向后滾動(dòng)操作。 |
focus | 表示獲得焦點(diǎn)操作。 |
clearFocus | 表示清除焦點(diǎn)操作。 |
clearSelection | 表示清除選擇操作。 |
accessibilityFocus | 表示獲得無(wú)障礙焦點(diǎn)操作。 |
clearAccessibilityFocus | 表示清除無(wú)障礙焦點(diǎn)操作。 |
cut | 表示剪切操作。 |
copy | 表示復(fù)制操作。 |
paste | 表示粘貼操作。 |
select | 表示選擇操作。 |
setText | 表示設(shè)置文本操作。 |
delete | 表示刪除操作。 |
setSelection | 表示選擇操作。 |
Capability
輔助應(yīng)用能力類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
名稱 | 描述 |
---|---|
retrieve | 具有檢索窗口內(nèi)容的能力。 |
touchGuide | 具有觸摸探索模式的能力。 |
keyEventObserver | 具有過(guò)濾按鍵事件的能力。 |
zoom | 具有控制顯示放大的能力。 |
gesture | 具有執(zhí)行手勢(shì)動(dòng)作的能力。 |
aptionsFontEdgeType8+
字幕字體邊緣類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Hearing
名稱 | 描述 |
---|---|
none | 無(wú)效果。 |
raised | 凸起效果。 |
depressed | 凹陷效果。 |
uniform | 輪廓效果。 |
dropShadow | 陰影效果。 |
CaptionsFontFamily8+
字幕字體。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Hearing
名稱 | 描述 |
---|---|
default | 默認(rèn)字體。 |
monospacedSerif | 等寬 Serif 字體。 |
serif | Serif 字體。 |
monospacedSansSerif | 等寬 Sans Serif 字體。 |
sansSerif | Sans Serif 字體。 |
casual | 非正式字體。 |
cursive | 手寫字體。 |
smallCapitals | 小型大寫字母字體。 |
CaptionsStyle8+
字幕風(fēng)格。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Hearing
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
fontFamily | [CaptionsFontFamily] | 是 | 否 | 描述字幕字體。 |
fontScale | number | 是 | 否 | 描述字幕字體縮放系數(shù)。 |
fontColor | number | string | 是 | 否 |
fontEdgeType | [CaptionsFontEdgeType] | 是 | 否 | 描述字幕字體邊緣。 |
backgroundColor | number | string | 是 | 否 |
windowColor | number | string | 是 | 否 |
CaptionsManager8+
字幕配置。
屬性
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
enabled | boolean | 是 | 否 | 表示是否啟用字幕配置。 |
style | [CaptionsStyle] | 是 | 否 | 表示字幕風(fēng)格。 |
方法
下列 API 示例中都需要使用 [accessibility.getCaptionsManager()]獲取 captionsManager 實(shí)例,再通過(guò)此實(shí)例調(diào)用對(duì)應(yīng)的方法。
on('enableChange')
on(type: 'enableChange', callback: Callback): void;
注冊(cè)字幕配置啟用的監(jiān)聽函數(shù)。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Hearing
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 type string 是 監(jiān)聽字幕配置啟用狀態(tài)。 callback Callback 是 回調(diào)函數(shù),在啟用狀態(tài)變化時(shí)將狀態(tài)通過(guò)此函數(shù)進(jìn)行通知。 示例
captionsManager.on('enableChange',(data) = > { console.info('success data:subscribeStateObserver : ' + JSON.stringify(data)) })
on('styleChange')
on(type: 'styleChange', callback: Callback): void;
注冊(cè)字幕風(fēng)格變化的監(jiān)聽函數(shù)。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Hearing
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 type string 是 監(jiān)聽字幕風(fēng)格變化。 callback Callback<[CaptionsStyle]> 是 回調(diào)函數(shù),在字幕風(fēng)格變化時(shí)通過(guò)此函數(shù)進(jìn)行通知。 示例
captionsManager.on('styleChange',(data) = > { console.info('success data:subscribeStateObserver : ' + JSON.stringify(data)) })
off('enableChange')
off(type: 'enableChange', callback?: Callback): void;
移除字幕配置啟用的監(jiān)聽函數(shù)。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Hearing
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 type string 是 監(jiān)聽字幕配置啟用狀態(tài)。 callback Callback 否 回調(diào)函數(shù),在啟用狀態(tài)變化時(shí)將狀態(tài)通過(guò)此函數(shù)進(jìn)行通知。 示例
captionsManager.off('enableChange')
off('styleChange')
off(type: 'styleChange', callback?: Callback): void;
移除字幕風(fēng)格變化的監(jiān)聽函數(shù)。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Hearing
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 type string 是 字幕風(fēng)格變化。 callback Callback<[CaptionsStyle]> 否 回調(diào)函數(shù),在字幕風(fēng)格變化時(shí)通過(guò)此函數(shù)進(jìn)行通知。 示例
captionsManager.off('styleChange')
EventInfo
界面變更事件。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
屬性
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
type | [EventType] | 是 | 是 | 無(wú)障礙事件類型。 |
windowUpdateType | [WindowUpdateType] | 是 | 是 | 窗口變化類型。 |
bundleName | string | 是 | 是 | 目標(biāo)應(yīng)用名。 |
componentType | string | 是 | 是 | 事件源組件類型,如按鈕、圖表。 |
pageId | number | 是 | 是 | 事件源的頁(yè)面 ID。 |
description | string | 是 | 是 | 事件描述。 |
triggerAction | [Action] | 是 | 是 | 觸發(fā)事件的 Action。 |
textMoveUnit | [TextMoveUnit] | 是 | 是 | 文本移動(dòng)粒度。 |
contents | Array | 是 | 是 | 內(nèi)容列表。 |
lastContent | string | 是 | 是 | 最新內(nèi)容。 |
beginIndex | number | 是 | 是 | 畫面顯示條目的開始序號(hào)。 |
currentIndex | number | 是 | 是 | 當(dāng)前條目序號(hào)。 |
endIndex | number | 是 | 是 | 畫面顯示條目的結(jié)束序號(hào)。 |
itemCount | number | 是 | 是 | 條目總數(shù)。 |
方法
constructor
constructor(jsonObject)
構(gòu)造函數(shù)。
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 jsonObject string 是 創(chuàng)建對(duì)象所需要的 JSON 格式字符串。 示例
let eventInfo = new accessibility.EventInfo({"type":"click","bundleName":"com.example.MyApplication","triggerAction":"click"})
EventType
無(wú)障礙事件類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
名稱 | 描述 |
---|---|
click | 描述點(diǎn)擊組件的事件。 |
longClick | 描述長(zhǎng)按組件的事件。 |
select | 描述選擇組件的事件。 |
focus | 描述組件獲得焦點(diǎn)的事件。 |
textUpdate | 描述組件文本已更改的事件。 |
hoverEnter | 描述懸停進(jìn)入組件的事件。 |
hoverExit | 描述懸停離開組件的事件。 |
scroll | 描述滾動(dòng)視圖的事件。 |
textSelectionUpdate | 描述選定文本已更改的事件。 |
accessibilityFocus | 描述獲得無(wú)障礙焦點(diǎn)的事件。 |
accessibilityFocusClear | 描述清除無(wú)障礙焦點(diǎn)的事件。 |
TextMoveUnit
文本無(wú)障礙導(dǎo)航移動(dòng)粒度。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
名稱 | 描述 |
---|---|
char | 以字符為移動(dòng)粒度遍歷節(jié)點(diǎn)文本。 |
word | 以詞為移動(dòng)粒度遍歷節(jié)點(diǎn)文本。 |
line | 以行為移動(dòng)粒度遍歷節(jié)點(diǎn)文本。 |
page | 以頁(yè)為移動(dòng)粒度遍歷節(jié)點(diǎn)文本。 |
paragraph | 以段落為移動(dòng)粒度遍歷節(jié)點(diǎn)文本。 |
WindowUpdateType
窗口變化類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Barrierfree.Accessibility.Core
名稱 | 描述 |
---|---|
add | 添加窗口的窗口變化事件。 |
remove | 一個(gè)窗口被刪除的窗口變化事件。 |
bounds | 窗口邊界已更改的窗口變化事件。 |
active | 窗口變?yōu)榛顒?dòng)或不活動(dòng)的窗口變化事件。 |
focus | 窗口焦點(diǎn)發(fā)生變化的窗口變化事件。 |
accessibility.getAbilityLists
getAbilityLists(abilityType: AbilityType, stateType: AbilityState): Promise>
查詢輔助應(yīng)用列表。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 abilityType [AbilityType] 是 輔助應(yīng)用的類型。 stateType [AbilityState] 是 輔助應(yīng)用的狀態(tài)。 返回值:
類型 說(shuō)明 Promise> 返回輔助應(yīng)用信息列表。 示例
accessibility.getAbilityLists("spoken", "enable") .then((data) = > { console.info('success data:getAbilityList1 : ' + JSON.stringify(data)); for (let item of data) { console.info(item.id); console.info(item.name); console.info(item.description); console.info(item.abilityTypes); console.info(item.eventTypes); console.info(item.capabilities); console.info(item.packageName); console.info(item.filterBundleNames); console.info(item.bundleName); } }).catch((error) = > { console.error('failed to getAbilityList1 because ' + JSON.stringify(error)); })
accessibility.getAbilityLists
getAbilityLists(abilityType: AbilityType, stateType: AbilityState,callback: AsyncCallback>): void
查詢輔助應(yīng)用列表。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 abilityType [AbilityType] 是 輔助應(yīng)用的類型。 stateType [AbilityState] 是 輔助應(yīng)用的狀態(tài)。 callback AsyncCallback> 是 回調(diào)函數(shù),返回輔助應(yīng)用信息列表。 示例
accessibility.getAbilityLists("visual", "enable", (err, data) = > { if (err) { console.error('failed to getAbilityList2 because ' + JSON.stringify(err)); return; } console.info('success data:getAbilityList2 : ' + JSON.stringify(data)); for (let item of data) { console.info(item.id); console.info(item.name); console.info(item.description); console.info(item.abilityTypes); console.info(item.eventTypes); console.info(item.capabilities); console.info(item.packageName); console.info(item.filterBundleNames); console.info(item.bundleName); } })
accessibility.getCaptionsManager8+
getCaptionsManager(): CaptionsManager
獲取無(wú)障礙字幕配置。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Hearing
返回值:
類型 說(shuō)明 [CaptionsManager] 無(wú)障礙字幕配置管理。 示例
captionsManager = accessibility.getCaptionsManager()
accessibility.on('accessibilityStateChange' | 'touchGuideStateChange')
on(type: 'accessibilityStateChange' | 'touchGuideStateChange', callback: Callback): void
啟用輔助應(yīng)用和觸摸瀏覽功能的狀態(tài)變化監(jiān)聽。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力有所不同,詳見下表。
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 type string 是 監(jiān)聽的事件類型。 - type 為'accessibilityStateChange'時(shí)表示監(jiān)聽類型為輔助功能啟用狀態(tài)變化監(jiān)聽; 系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core - type 為'touchGuideStateChange'時(shí)表示監(jiān)聽類型為觸摸瀏覽啟用狀態(tài)變化監(jiān)聽。 系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Vision callback Callback 是 回調(diào)函數(shù),在啟用狀態(tài)變化時(shí)將狀態(tài)通過(guò)此函數(shù)進(jìn)行通知。 示例
accessibility.on('accessibilityStateChange',(data) = > { console.info('success data:subscribeStateObserver : ' + JSON.stringify(data)) })
accessibility.off('accessibilityStateChange' | 'touchGuideStateChange')
off(type: ‘a(chǎn)ccessibilityStateChange ’ | ‘touchGuideStateChange’, callback?: Callback): void
關(guān)閉輔助應(yīng)用和觸摸瀏覽功能的狀態(tài)變化監(jiān)聽。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力有所不同,詳見下表。
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 type string 否 監(jiān)聽的事件類型。 - type 為'accessibilityStateChange'時(shí)表示監(jiān)聽類型為輔助功能啟用狀態(tài)變化監(jiān)聽; 系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core - type 為'touchGuideStateChange'時(shí)表示監(jiān)聽類型為觸摸瀏覽啟用狀態(tài)變化監(jiān)聽。 系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Vision callback Callback 否 要取消的監(jiān)聽回調(diào)函數(shù)。 示例
accessibility.off('accessibilityStateChange',(data) = > { console.info('success data:unSubscribeStateObserver : ' + JSON.stringify(data)) })
accessibility.isOpenAccessibility
isOpenAccessibility(): Promise
判斷是否啟用了輔助功能。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
返回值:
類型 說(shuō)明 Promise 如果輔助功能已啟用,則返回 true;否則返回 false。 示例
accessibility.isOpenAccessibility() .then((data) = > { console.info('success data:isOpenAccessibility : ' + JSON.stringify(data)) }).catch((error) = > { console.error('failed to isOpenAccessibility because ' + JSON.stringify(error)); })
accessibility.isOpenAccessibility
isOpenAccessibility(callback: AsyncCallback): void
判斷是否啟用了輔助功能。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
參數(shù)
參數(shù)名 參數(shù)類型 必填 說(shuō)明 callback AsyncCallback 是 回調(diào)函數(shù),如果輔助功能已啟用,則返回 true;否則返回 false。 示例
accessibility.isOpenAccessibility((err, data) = > { if (err) { console.error('failed to isOpenAccessibility because ' + JSON.stringify(err)); return; } console.info('success data:isOpenAccessibility : ' + JSON.stringify(data)) })
accessibility.isOpenTouchGuide
isOpenTouchGuide(): Promise
判斷觸摸瀏覽模式是否開啟。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
返回值:
類型 說(shuō)明 Promise 如果觸摸瀏覽模式已開啟,則返回 true;否則返回 false。 示例
accessibility.isOpenTouchGuide() .then((data) = > { console.info('success data:isOpenTouchGuide : ' + JSON.stringify(data)) }).catch((error) = > { console.error('failed to isOpenTouchGuide because ' + JSON.stringify(error)); })
accessibility.isOpenTouchGuide
isOpenTouchGuide(callback: AsyncCallback): void
判斷觸摸瀏覽模式是否開啟。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
參數(shù)
參數(shù)名 參數(shù)類型 必填 說(shuō)明 callback AsyncCallback 是 回調(diào)函數(shù),如果觸摸瀏覽模式已開啟,則返回 true;否則返回 false。 示例
accessibility.isOpenTouchGuide((err, data) = > { if (err) { console.error('failed to isOpenTouchGuide because ' + JSON.stringify(err)); return; } console.info('success data:isOpenTouchGuide : ' + JSON.stringify(data)) })
accessibility.sendEvent
sendEvent(event: EventInfo): Promise
發(fā)送無(wú)障礙事件。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 event [EventInfo] 是 無(wú)障礙事件對(duì)象。 返回值:
類型 說(shuō)明 Promise 以 Promise 形式返回結(jié)果,如果發(fā)送無(wú)障礙事件成功,則 data 有數(shù)據(jù)返回;如果發(fā)送無(wú)障礙事件失敗,則 err 有數(shù)據(jù)返回。 示例
accessibility.sendEvent(this.eventInfo) .then((data) = > { console.info('success data:sendEvent : ' + JSON.stringify(data)) }).catch((error) = > { console.error('failed to sendEvent because ' + JSON.stringify(error)); })
accessibility.sendEvent
sendEvent(event: EventInfo, callback: AsyncCallback): void
發(fā)送無(wú)障礙事件。
系統(tǒng)能力 :SystemCapability.Barrierfree.Accessibility.Core
參數(shù):
參數(shù)名 參數(shù)類型 必填 說(shuō)明 event [EventInfo] 是 輔助事件對(duì)象。 callback AsyncCallback 是 回調(diào)函數(shù),如果發(fā)送無(wú)障礙事件成功,則 AsyncCallback 中 data 有數(shù)據(jù)返回;如果發(fā)送無(wú)障礙事件失敗,則 AsyncCallback 中 err 有數(shù)據(jù)返回。 HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
示例
accessibility.sendEvent(this.eventInfo,(err, data) = > { if (err) { console.error('failed to sendEvent because ' + JSON.stringify(err)); return; } console.info('success data:sendEvent : ' + JSON.stringify(data)) })
-
接口
+關(guān)注
關(guān)注
33文章
8668瀏覽量
151526 -
API
+關(guān)注
關(guān)注
2文章
1507瀏覽量
62217 -
開發(fā)系統(tǒng)
+關(guān)注
關(guān)注
0文章
38瀏覽量
9690 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2378瀏覽量
42940
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論