@capacitor/screen-reader
屏幕阅读器 API 提供对 TalkBack/VoiceOver/等的支持,并提供简单的文本转语音功能,以实现视觉无障碍。
安装
npm install @capacitor/screen-reader
npx cap sync
示例
import { ScreenReader } from '@capacitor/screen-reader';
ScreenReader.addListener('stateChange', ({ value }) => {
console.log(`Screen reader is now ${value ? 'on' : 'off'}`);
});
const checkScreenReaderEnabled = async () => {
const { value } = await ScreenReader.isEnabled();
console.log('Voice over enabled? ' + value);
};
const sayHello = async () => {
await ScreenReader.speak({ value: 'Hello World!' });
};
API
isEnabled()
isEnabled() => Promise<{ value: boolean; }>
屏幕阅读器当前是否处于活动状态。
此方法在 Web 上不受支持(无法检测到屏幕阅读器)。
返回值: Promise<{ value: boolean; }>
自 1.0.0
speak(...)
speak(options: SpeakOptions) => Promise<void>
文本转语音功能。
此函数仅在屏幕阅读器当前处于活动状态时有效。
在 Web 上,浏览器必须支持 SpeechSynthesis API,否则此方法将抛出错误。
有关更多文本转语音功能,请参见 Capacitor 社区文本转语音插件。
参数 | 类型 |
---|---|
options | SpeakOptions |
自 1.0.0
addListener('stateChange', ...)
addListener(eventName: 'stateChange', listener: StateChangeListener) => Promise<PluginListenerHandle>
添加一个监听器,用于监听屏幕阅读器开启或关闭时触发的事件。
此事件以前名为 'accessibilityScreenReaderStateChange'
。
此方法在 Web 上不受支持(无法检测到屏幕阅读器)。
参数 | 类型 |
---|---|
事件名称 | 'stateChange' |
监听器 | StateChangeListener |
返回值: Promise<PluginListenerHandle>
自 1.0.0
removeAllListeners()
removeAllListeners() => Promise<void>
删除附加到此插件的所有监听器。
自 1.0.0
接口
SpeakOptions
属性 | 类型 | 描述 | 自 |
---|---|---|---|
value | string | 要朗读的文本。 | 1.0.0 |
language | string | 以其 ISO 639-1 代码(例如:“en”)表示的朗读文本的语言。此选项仅在 Android 上受支持。 | 1.0.0 |
PluginListenerHandle
属性 | 类型 |
---|---|
remove | () => Promise<void> |
ScreenReaderState
属性 | 类型 | 描述 | 自 |
---|---|---|---|
value | boolean | 屏幕阅读器当前是否处于活动状态。 | 1.0.0 |
类型别名
StateChangeListener
(state: ScreenReaderState): void