Какие действия запускают функцию webViewWebContentProcessDidTerminate

Я сделал приложение iOS с Xcode и Swift с помощью только WebView. Иногда веб-сайт, отображаемый этим WebView, падает. В этом случае я хочу перезагрузить WebView.

Для этого я прочитал, что в iOS 9 появился новый триггер, который вызывается, когда:

процесс веб-контента веб-представления прекращается.

Источник: iOS Developer Library

Поэтому я добавляю эту функцию в свой файл ViewController :

 func webViewWebContentProcessDidTerminate(webView: WKWebView){ print("Reload"); self.webView!.reload(); } 

Но когда мой сайт разбивается, ничего не добавляйте, поэтому мне интересно: в каком случае вызывается webViewWebContentProcessDidTerminate?

kristfal нашел интересное поведение:

Если приложение работает на переднем плане, восстановление при сбое очень хорошо работает через webViewWebContentProcessDidTerminate. Он просто перезагружает wkwebview. Новый экземпляр веб-представления не создается, поэтому больше проблем с памятью (текущая реализация не протекает).

Когда приложение возвращается с фона, оно подвержено сбою веб-просмотра без вызова webViewWebContentProcessDidTerminate. Приложение попытается восстановить с перезагрузкой веб-просмотра через applicationDidBecomeActive, но если он не сработает (что, похоже, произойдет примерно в 1/10 раза), это приведет к сбою всего приложения, чтобы предотвратить застревание в бесконечном цикле загрузки.

Источник: https://github.com/Telerik-Verified-Plugins/WKWebView/issues/248#issuecomment-235241805

Interesting Posts
Давайте будем гением компьютера.