Есть ли способ предварительно кэшировать веб-страницу для просмотра с помощью Android WebView? - PullRequest
8 голосов
/ 02 октября 2011

Я читал о манифесте кэша HTML5 и видел, что Android поддерживает кэширование сайтов с использованием манифеста кэша. Я хочу использовать манифест кэша, чтобы загрузить все необходимые ресурсы для своего веб-сайта, чтобы предварительно загрузить его, а затем открыть WebView и отобразить удаленный веб-сайт с использованием предварительно кэшированных ресурсов. Я хочу как-то предварительно кэшировать свою удаленную страницу, желательно без использования WebView для процесса кэширования.

Проблема с использованием WebView для процесса предварительного кэширования заключается в том, что загрузка веб-страницы с использованием WebView отображает и выполняет страницу, а не просто загружает ее.

Я прочитал это: http://alex.tapmania.org/2010/11/html5-cache-android-webview.html,, но кэширование с поддержкой WebView - это не то, что мне нужно. Я хочу, чтобы процесс загрузки происходил мгновенно (при условии, что манифест / etags кэша удаленного веб-сайта совпадают с кэшированной версией) сразу после завершения предварительного кэширования ресурсов вместо ожидания загрузки WebView и кэширования всего на первый доступ.

Как правильно предварительно кэшировать веб-страницы для последующего просмотра?

Спасибо!

1 Ответ

9 голосов
/ 21 ноября 2011

То, что вы хотите сделать, требует реализации механизма для кэша приложений, связанных ресурсов, файлов cookie и локального хранилища базы данных для приложений HTML5, которые используют API базы данных, и это важная часть того, что браузеры делают в наши дни. Я не рекомендую выполнять кэширование самостоятельно, не только потому, что это так много работы, но и потому, что я не могу вспомнить ни один метод в WebView и его друзьях (WebViewClient и т. Д.), Которые принимают внешний кэш.

Но ваша проблема имеет очень простое решение: вы можете поместить WebView в ваше представление и установить visibility в gone. Затем сделайте его видимым после завершения загрузки страницы. WebView также автоматически сохраняет кэш для вашего приложения, чтобы при следующем запуске оно загружало страницу быстрее.

Чтобы скрыть WebView, а затем автоматически показать его, вам просто нужно переопределить onPageFinished в WebViewClient .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...