React Native WebView - 仅在用户交互时在外部浏览器中打开 link
React Native WebView - Open link in external browser only in case of user interaction
我有以下 WebView 组件,多次用于新闻文章中的各种嵌入
<WebView
useWebKit={true}
ref={(ref) => this.webview = ref}
javaScriptEnabled={true}
injectedJavaScript={"(" + injectedScript + ")()"}
onMessage={this.onMessage}
onNavigationStateChange={this.onNavigationStateChange}
{...this.props}
/>
和下面的导航状态变化监听器,用于在外部浏览器中打开links
onNavigationStateChange = (event) => {
this.webview.stopLoading();
Linking.openURL(event.url);
}
问题是导航更改侦听器似乎无法区分用户交互和自动页面重定向(社交媒体嵌入通常会这样做)。如何在外部浏览器中打开 link 仅供用户交互?
我不知道自动页面重定向是否会触发点击事件,但应该不会,所以你只能监听 click
事件,我想这些事件只能由用户触发。
onNavigationStateChange = (navState) =>
{
if (navState.navigationType === 'click') {
// User clicked something
}
}
我有以下 WebView 组件,多次用于新闻文章中的各种嵌入
<WebView
useWebKit={true}
ref={(ref) => this.webview = ref}
javaScriptEnabled={true}
injectedJavaScript={"(" + injectedScript + ")()"}
onMessage={this.onMessage}
onNavigationStateChange={this.onNavigationStateChange}
{...this.props}
/>
和下面的导航状态变化监听器,用于在外部浏览器中打开links
onNavigationStateChange = (event) => {
this.webview.stopLoading();
Linking.openURL(event.url);
}
问题是导航更改侦听器似乎无法区分用户交互和自动页面重定向(社交媒体嵌入通常会这样做)。如何在外部浏览器中打开 link 仅供用户交互?
我不知道自动页面重定向是否会触发点击事件,但应该不会,所以你只能监听 click
事件,我想这些事件只能由用户触发。
onNavigationStateChange = (navState) =>
{
if (navState.navigationType === 'click') {
// User clicked something
}
}