Проблема с периодическим пустым экраном WKWebView

Я интегрирую WKWebView в наше приложение. И увидеть различные вопросы. Самым раздражающим и блокирующим является прерывистый пустой экран. Это может быть вызвано многими моими вещами, навигацией, масштабированием и т. д.

Когда я изучаю иерархию представлений внутри WKWebView, я вижу, что многие подпредставления отсутствуют. Когда я подключаю инспектор, HTML загружается правильно. И иногда я вижу сообщение в журнале консоли:

Received an invalid message "RemoteLayerTreeDrawingAreaProxy.CommitLayerTree" from the web process.

Мы уже отправили пару радаров в Apple. Кто-нибудь имел подобную проблему и нашел прогулку?


person Cloud Xu    schedule 15.09.2014    source источник


Ответы (1)


WebProcess WKWebView выполняется вне процесса как 64-разрядный процесс на оборудовании, поддерживающем 64-разрядную версию. Существует ошибка 32-битной/64-битной сортировки IPC для 32-битных приложений, использующих клиент WKWebView на таком оборудовании. Ошибка приводит к завершению WebProcess, оставляя пустой экран.

Вы можете убедиться в этом, 1) запустив приложение на оборудовании, которое поддерживает только 32-разрядную версию и поддерживает iOS 8 (например, iPad 2), или создав 64-разрядную версию вашего приложения. (Можно собрать только 64-битную версию в качестве проверки работоспособности.)

person user791716    schedule 15.09.2014
comment
Крутой первый пост! ;) - person Leo Natan; 16.09.2014
comment
Потрясающий! У меня был проект, который был настроен только на сборку 32-битной версии. Разрешение 64-битной версии исправило кучу проблем, которые у меня были с WKWebView. - person weiyin; 16.09.2014
comment
Ага. Apple подтвердила наличие такой ошибки. И мы действительно собираем только 32-битные версии. Интересно, что на 4S у нас тоже были репродукции, хотя я не вижу сообщения, а такой же пустой экран. Кажется, это связано с нагрузкой на память. - person Cloud Xu; 23.09.2014
comment
Ошибка была исправлена ​​в 8.1? - person Brian McGinity; 08.12.2014
comment
В 8.1 это не исправлено. Мне тоже нужно собрать 32-битную версию, так как у меня есть сторонняя библиотека, которая работает только в 32-битной версии. Итак, что мне нужно сделать, это создать 2 приложения: одно для iPad2 (32-битное), которое может использовать wkWebView, и одно для iPad Air (64-битное), которое использует uiWebView. ха смешно... - person Brian McGinity; 09.12.2014
comment
Я все еще получаю это на iOS 10.2 на iPhone 6. Что было недавно обнаружено? Моя сборка сохраняет совместимость с iPad 2 / iOS 8.0 и, следовательно, сохраняет совместимость с 32-разрядной версией. - person BaseZen; 19.04.2017