Наше приложение для iOS имеет веб-представление, отображающее страницы из файла: URL-адреса. Когда пользователь касается элемента <A>
для переключения страниц, примерно в 20% случаев он застревает следующим образом:
- Пользователь нажимает
<A>
ссылка
- Мы получаем обратный вызов WebView.shouldStartLoadWithRequest
- Мы получаем обратный вызов WebView.webViewDidStartLoad
- после этого ничего не происходит
На экране все еще отображается исходная страница со ссылкой на нее. Мы можем разбить бревно двумя способами:
- Поворот устройства
- Нажмите на экран
В этот момент страница сразу же завершит загрузку.
Мы использовали рецепт отсюда:
Javascript console.log () в iOS UIWebView
, чтобы дать нам некоторое представление о загрузке страницы. Мы помещаем содержимое на стороне javascript прямо в первый файл сценария, который загружаем на страницу, и оно не печатает свое сообщение до тех пор, пока мы не выполним обходной путь поворота или нажатия.
Похоже, что он застревает где-то между началом загрузки страницы и началом оценки содержимого на странице.
Мы пробовали несколько обходных путей, но ни один из них не помог:
- Установка location.href вместо использования тега
- Установка location.href из таймаута JavaScript
- В обратном вызове didStartLoad создал поток, который вызывал setNeedDisplay в webView снова и снова
Есть идеи, что мы можем делать неправильно?