onNavigationStateChange 在 Android React Native 中不起作用

onNavigationStateChange not working in Android React Native

你好朋友,我想在我的 React Native 项目中使用 Android 深度集成 link 下面是我的代码

 <WebView
source={{ uri: this.state.authURL }}
ref="webViewAndroidSample"
renderError={(error) => alert(error)}
startInLoadingState = {false}
javaScriptEnabled = {true}
domStorageEnabled = {true}
onNavigationStateChange = {this._onShouldStartLoadWithRequest}/> 

_onShouldStartLoadWithRequest(e){
    console.log("URL "+e.url);

}

当我在我的网络视图中单击其他 link 时,我没有在 e.url 中单击 link url 我记录了我如何解决这个问题的想法?

根据你的评论,我了解到你想在你的 React Native 应用程序中有一个 WebView,并在其中加载 url 一些 links 打开自定义 urls这将触发同一应用程序内的其他操作。

我不知道是否有从 WebView 内部打开深层 link 的简单方法,但您可以尝试不同的方法。您可以使用 WebView 的 onMessage 方法和 window.postMessage 将消息从网页发送到您的应用程序,如本次博览会小吃所示

https://snack.expo.io/HJSTrfA2f

注意 onMessage 方法。在那里,您可以根据从网络视图获得的消息插入您的应用程序逻辑

onMessage={event => {
      alert('MESSAGE >>>>' + event.nativeEvent.data);
}}

也许 onLoadProgress 函数是您应该实现的。因为它与onNavigationStateChangeurlcanGoBacktitle等参数非常相似

更新 react-native-webview 到最新版本。