React-Native iOS:如何确定已启用“开关控件”可访问性功能?

时间:2019-01-04 10:00:04

标签: ios react-native accessibility voiceover

我有一个React-Native应用程序。 在启用VoiceOver无障碍功能的情况下,我为一个屏幕制作了另一种视图。我使用AccessibilityInfo做到了这一点。但是我不知道如何检查是否启用了“开关控制”辅助功能。可能吗?谢谢。

2 个答案:

答案 0 :(得分:0)

以这种方式检查:

AccessibilityInfo.fetch().then((isEnabled) => {
  this.setState({
    screenReaderEnabled: isEnabled,
  });
});

在此处阅读文档:https://facebook.github.io/react-native/docs/accessibilityinfo

答案 1 :(得分:0)

我根据此文档创建了本机模块:

https://facebook.github.io/react-native/docs/native-modules-ios

#import "RNAccessibilityManager.h"
#import <UIKit/UIKit.h>

@interface RNAccessibilityManager ()
@end

@implementation RNAccessibilityManager

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(getCurrentSwitchControlState:(RCTResponseSenderBlock)callback)
{
    callback(@[@(UIAccessibilityIsSwitchControlRunning())]);
}

@end

手动链接并按以下方式使用:

import RNAccessibilityManager from 'react-native-accessibility-manager'

RNAccessibilityManager.getCurrentSwitchControlState((isEnabled) => {
  this.setState({
    switchControlEnabled: isEnabled,
  });
});