我维护了一个混合的react-原生 (0.66.3)移动应用程序,它基本上是一个外壳,很好地包装了我们的网络应用程序。这种开发一次并在移动和web平台上重用的方法非常适合我们的用例。
最近我注意到了可访问性方面的一个问题。iOS有一个可访问性特性,允许用户选择他们喜欢的文本大小,这可以帮助需要更大文本的用户获得更好的可读性。(自动)
不幸的是,iOS版本的混合反应-本机应用程序不尊重这个设置,也没有适当地改变其文本大小。iOS应用程序的shell (本机部分)从动态类型中获取字体大小,但是iOS应用程序中的WebView (react原生webview: 7.5.1)组件不会从动态类型中提取字体大小。
这是一个已知的问题/事情在“反应-本机-webview”,或者其他人请指点我在正确的方向(可能用一个例子),以增加这个可访问性的功能到iOS应用程序?
谢谢!
发布于 2022-11-30 02:52:17
这似乎目前(11月22日)不支持的反应-本机-webview。
反应-本机-信息有一个名为getFontScale()的函数,您可以将其用于设置基本rem值,然后将其插入到webview中。
async function getInjectedJs() {
const fontScale = await getGetFontScale();
return `
const html = document.getElementByTagName('html');
html.style.fontSize = {your_base_font_size} * ${fontScale}
`
}
...
<WebView injectJavascriptAfterLoad={getInjectedJs()) ...上面的话不太管用,但你明白了。
很想听听你是否找到了另一种方式
https://stackoverflow.com/questions/71745135
复制相似问题