Действительно ли возможно кэшировать ресурсы, загруженные в iPhone UIWebView?

Пожалуйста, проверьте ниже, я предпочитаю использовать flexbox. Я также использую префиксы -webkit и -ms для большей кросс-браузерной совместимости

  tbody , thead {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  tr {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  th,td {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    text-align: center;
  }

  tbody {
     height: 50px;
     overflow-y: auto;
  }

  thead {
    padding-right: 20px;
  }

Я установил padding-right на thead из-за полосы прокрутки на tbody.

11
задан Unheilig 19 December 2016 в 04:25
поделиться

4 ответа

Можно всегда выполнять запросы вручную, хотя это будет хитро - и затем можно кэшировать вещи к содержанию основы. Сборка a UIWebViewDelegate это запускает запрос в webView:shouldStartLoadWithRequest:navigationType:, кэшируйте результат и используйте UIWebView loadHTMLString:baseURL: обновить представление.

Это будет ужасно, и вещи не будут работать так гладко, как Вы могли бы хотеть, но это может быть достаточно хорошо для того, в чем Вы нуждаетесь.

2
ответ дан 3 December 2019 в 06:23
поделиться

ihone ограничил кэширующуюся способность по сравнению с нормальным компьютером. Это ограничивает несжатые объекты кэша 25k.

Хорошая информация здесь: http://yuiblog.com/blog/2008/02/06/iphone-cacheability/

1
ответ дан 3 December 2019 в 06:23
поделиться

Один из способов решения этой проблемы, как я вижу, - это

1) загрузить HTML-код

2) сохранить его в строке

3) найти в нем все внешние ссылки, например

<img src="img.gif" width="..." height="..." />

4) загрузить их все

5) заменить их встроенной версией в кодировке Base64

<img src="data:image/gif;base64,R0lGODlhUAAPA...JADs= " width="..." height="..." />

6) наконец сохранить полный HTML со встроенными изображениями по своему усмотрению.

7
ответ дан 3 December 2019 в 06:23
поделиться

Теперь вы можете попробовать ASIWebPageRequest от All Seeing Interactive:

ASIWebPageRequest - это новое экспериментальное дополнение к семейству ASIHTTPRequest. Его можно использовать для загрузки полной веб-страницы, включая внешние ресурсы, такие как изображения и таблицы стилей, за один запрос. После загрузки веб-страницы запрос будет анализировать контент, искать внешние ресурсы, загружать их и вставлять их непосредственно в источник html с помощью Data URIS. Затем вы можете взять ответ и поместить его прямо в UIWebView / WebView на Mac.

Я могу только посоветовать всем использовать замечательную библиотеку Бена Копси для всех видов HTTP-операций.

ОБНОВЛЕНИЕ : Бен прекратил поддержку ASIHTTPRequest. Я больше не предлагаю его использовать.

4
ответ дан 3 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: