onNavigationStateChange не работает в Android React Native
Здравствуйте, друзья! Я хочу интегрировать глубокую ссылку в свой собственный проект с Android, поэтому ниже приведен мой код
<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);
}
Когда я нажимаю другую ссылку в моем веб-представлении, я не получаю URL-адрес по ссылке в e.url, в который я записываю какие-либо идеи, как я могу решить эту проблему?
3 ответа
На основании вашего комментария я понимаю, что вы хотите иметь WebView в своем собственном приложении и внутри него для загрузки URL-адресов с некоторыми ссылками, которые открывают пользовательские URL-адреса и будут запускать другие действия в том же приложении.
Я не знаю, есть ли простой способ открыть глубокую ссылку из WebView, но вы могли бы попробовать другой подход. Вы можете использовать метод onMessage в WebView и window.postMessage для отправки сообщений с веб-страницы в ваше приложение, как показано на этом снимке
https://snack.expo.io/HJSTrfA2f
Обратите внимание на метод onMessage. Там вы можете вставить логику вашего приложения на основе сообщения, которое вы получаете из веб-представления
onMessage={event => {
alert('MESSAGE >>>>' + event.nativeEvent.data);
}}
onLoadProgress: функция, которая вызывается при загрузке WebView.
Может быть
onLoadProgress
функция - это то, что вы должны реализовать. Поскольку он имеет очень похожие параметры с
onNavigationStateChange
, нравиться
url
,
canGoBack
,
title
, и т.д.
Обновить
react-native-webview
до последней версии.