У меня есть WKWebView, который загружает пользовательский файл HTML с нашего сервера. В нашем приложении есть кнопка для изменения размера шрифта веб-страницы с помощью JavaScript путем перебора всех элементов и установки их свойства style
(это не должно иметь значения, поскольку на других iOS он работает отлично).
На устройствах iOS 9, когда шрифт становится все больше и больше, веб-просмотр становится все медленнее, чтобы реагировать на изменение шрифта. Например, изменение с 22 пикселей на 24 пикселей вступает в силу за 2 секунды, а изменение с 24 пикселей на 26 пикселей может занять 3 секунды или больше. В конце концов, когда размер шрифта достигнет 28 пикселей, веб-просмотр будет сканировать sh приложение с предупреждением о памяти в консоли. Однако, если не подключиться к Xcode, он не будет треснуть sh, а превратится в пустой экран, как описано в этом аналогичном сообщении .
Это не дубликат, поскольку я прошу для чего-то другого:
Я реализовал webViewWebContentProcessDidTerminate
и могу подтвердить, что он был вызван, но когда я пытаюсь перезагрузить webView, он снова вылетает и падает sh -reload-cra sh л oop. Панель Xcode показывает, что моя память использует 31 МБ ОЗУ, что составляет 5% для моего iPhone 4S, поэтому это не должно быть проблемой памяти true . Веб-страница состоит только из абзацев текста, поэтому это системная ошибка или я делаю что-то не так? Прокомментируйте, если вам нужны дополнительные сведения.
Вот мой код:
class ReaderController: UIViewController {
// loads webView, injects JavaScript, handles button, etc.
func loadData() {
let html = // get html
webView.loadHTMLString(html, baseURL: htmlURL)
}
}
extension ReaderController: WKNavigationDelegate {
func webViewWebContentProcessDidTerminate(_ webView: WKWebView) {
loadData()
}
}