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 до последней версии.

Другие вопросы по тегам