Я работал над решением, которое позаботилось бы о том, чтобы пользователь мог открывать гиперссылки в веб-просмотре во внешнем браузере, но теперь пользовательский интерфейс в веб-представлении Android становится меньше, а веб-представление iOS остается неизменным.
До того, как это началось, я добавил onNavigationStateChange
свойство в ArticleDetails
компонент:
<View style={styles.content}>
{Boolean(this.props.article.VideoID) && (
<VimeoVideo videoId={this.props.article.VideoID.toString()} />
)}
{Boolean(this.props.article.Summary) && (
<Text style={styles.boldParragraph}>
{this.props.article.Summary}
</Text>
)}
{this.props.article.Sections.map(s => (
<WebViewAutoHeight
key={s.Body.substr(10)}
source={{
//prettier-ignore
html: `<body style="font-family: -apple-system, Roboto, sans-serif; background-color: ${lightTheme.grey2} !important; color: ${v2Colors.charcoalDarkest}; font-size: ${moderateScale(14, 0.2)}px;">${s.Body}</body>`
}}
onNavigationStateChange={event => {
if (event.url !== uri) {
Linking.openURL(event.url);
}
}}
/>
))}
</View>
Что я заметил, так это то, что если я перейду к компоненту WebViewAutoHeight.js
и закомментирую эту строку:
const WebViewAutoHeight = props => (
<AutoHeightWebView
// style={[styles.webview, props.style ? props.style : {}]}
{...props}
/>
);
Веб-просмотр на Android возвращается в нормальное русло. Я попытался вставить условное условие if, которое посмотрело бы, является ли операционная система iOS, и если да, то запустите эту строку, но у меня было много синтаксических ошибок.
Как я могу реализовать описанный выше стиль, только если это iOS, а не Android?