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
    }
}