onNavigationStateChange在Android React Native中不起作用

时间:2018-04-25 11:36:02

标签: android react-native custom-scheme-url

朋友们,我想在我的反应本机项目中集成深层链接,所以下面是我的代码

 <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);

}

当我点击我的网页浏览中的其他链接时,我没有在e.url中点击链接网址,我记录了我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:1)

根据您的评论,我了解您希望在您的react本机应用程序中使用WebView,并在其中加载带有一些打开自定义URL的链接的URL,这将触发同一应用程序内的其他操作。

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

https://snack.expo.io/HJSTrfA2f

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

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

答案 1 :(得分:0)

也许应该实现onLoadProgress函数。由于它具有onNavigationStateChange的非常相似的参数,例如urlcanGoBacktitle

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