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
函数是您应该实现的。因为它与onNavigationStateChange
、url
、canGoBack
、title
等参数非常相似
更新 react-native-webview
到最新版本。
你好朋友,我想在我的 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
函数是您应该实现的。因为它与onNavigationStateChange
、url
、canGoBack
、title
等参数非常相似
更新 react-native-webview
到最新版本。