gpt4 book ai didi

ios - onShouldStartLoadWithRequest 在 iOS React Native 中自动调用 WebView 中加载任何 url,如何控制它?

转载 作者:行者123 更新时间:2023-12-01 21:46:07 25 4
gpt4 key购买 nike

我正在为我的应用程序在 App WebView 中实现。我必须打开一些信息页面,并且我必须根据在 web View 中单击任何特定位置(包含不同类型的数据)来获取一些数据。但在 iOS 中,加载任何 URL 时 onShouldStartLoadWithRequest 会自动调用,这会导致在 HTML 内容中打开不同的 URL。但它在 Android 中按预期工作。

<WebView
originWhitelist={["*"]}
style={style}
source={source}
showsVerticalScrollIndicator={showsVerticalScrollIndicator}
startInLoadingState={startInLoadingState}
javaScriptEnabled={true}
onShouldStartLoadWithRequest={request => {
return onLoadWebViewOnClick(request)
}}
/>

在这个handleUrlNavigation中会处理任何点击 Action 的请求,但每次都是自动调用。我该如何处理?

最佳答案

我就是这样解决的。它需要进行平台检查,因为 iOS 会在加载时调用该函数,但 android 不会。

有了这个,在 ios 和 android 上,我的 webview 加载了我的 HTML,当用户点击 webview 内的链接时,他们被重定向到 native 浏览器。

    onShouldStartLoadWithRequest={event => {
const isExternalLink =
Platform.OS === 'ios' ? event.navigationType === 'click' : true;
if (event.url.slice(0, 4) === 'http' && isExternalLink) {
Linking.canOpenURL(event.url).then(supported => {
if (supported) {
Linking.openURL(event.url);
}
});
return false;
}
return true;
}}

关于ios - onShouldStartLoadWithRequest 在 iOS React Native 中自动调用 WebView 中加载任何 url,如何控制它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60493866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com