Я работаю над приложением React Native, которое использует WebView в качестве основного экрана приложения.
Когда приложение выходит из фона на передний план, WebView перезагружается. Как я могу остановить эту перезагрузку?
Этот ответ предлагает загрузить WebView в ViewDidLoad()
, а не в ViewDidAppear()
или ViewWillAppear()
. Является ли это реальным решением, и как я могу подтвердить или изменить способ загрузки WebView в React Native?
В качестве хакерского решения я использую onNavigationStateChange
, чтобы сохранить текущий URL в AsyncStorage
, а затем загрузить этот URL, когда приложение выходит на передний план. Это решение не велико, потому что оно:
- Разбивает историю браузера, затрагивая кнопки возврата JavaScript
- Не запоминает состояние формы
- Может отправить пользователя на страницу, к которой у него нет прямого доступа, в результате чего он будет отправлен на 404
Поэтому я бы предпочел решение, которое останавливает перезагрузку, по крайней мере, в ситуациях, когда приложение только на мгновение находится в фоновом режиме.