У меня есть собственный проект на платформе Android. У меня есть веб-просмотр, загруженный с URL-адреса. Когда пользователь щелкает любой URL-адрес, я хочу перейти на экран в моем приложении, и веб-просмотр перестанет загружаться. Итак, в моей функции onNavigationStateChange ()
source = {{uri:this.props.htmlUrl}}
ref='_webView'
scrollEnabled = {true}
javaScriptEnabled = {true}
domStorageEnabled = {true}
onNavigationStateChange = {(navState)=>{
//handle navigate another screen
this.refs._webView.stopLoading();
}}
Оно работает. Поэтому, когда я возвращаюсь и нажимаю другой URL-адрес, я не могу коснуться ни одного URL-адреса в веб-просмотре. Если у кого-то возникнет такая же проблема, пожалуйста, помогите мне. Заранее спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете проверить URL-адрес для ввода, и при нажатии на навигатор назад вы вводите ссылку только для проверки.
source = {{uri:this.props.htmlUrl}}
ref='_webView'
scrollEnabled = {true}
javaScriptEnabled = {true}
domStorageEnabled = {true}
onNavigationStateChange = {(navState)=>{
if (navState.url == ""){ // You must validate url to enter or navigate
this.refs._webView.stopLoading();
}
}}
Используйте опору onShouldStartLoadWithRequest из пакета react-native-webview.
onShouldStartLoadWithRequest = {event => {if (event.url== = "XXXX") return false; return true;}}
p.s. Верните true из функции, чтобы продолжить загрузку запроса, и false, чтобы остановить загрузку.
Вам не нужно останавливать загрузку веб-просмотра, он перестанет загружаться, когда завершит загрузку веб-страницы, на которой вы находитесь. Кроме того, onNavigationStateChange - не лучшее место для остановки WebView, зарегистрируйте navState, вы увидите, что он вызывается много раз, прежде чем страница полностью загрузится. Вы не хотите останавливать загрузку страницы до того, как большинство элементов на ней полностью загрузятся. Если вы пытаетесь остановить запущенный скрипт на странице, вам следует взглянуть на внедрение JavaScript в WebView, чтобы остановить продолжение скрипта.