Веб-просмотр на флаттер-кешированной веб-странице?

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


person hoangquyy    schedule 05.12.2019    source источник


Ответы (1)


flutter_inappwebview (бывший flutter_inappbrowser)
Имеет параметр cacheEnabled, значение по умолчанию - ture
cacheEnabled: устанавливает, должен ли WebView использовать кеширование браузера. Значение по умолчанию верно

версия сообщества flutter_webview_plugin
Имеет параметр appCacheEnabled для включения кеширования

WebviewScaffold(
    key: _scaffoldKey,
    url: widget.url,
    clearCache: true,
    appCacheEnabled: true,      
);

Официальная версия webview_flutter
Не указывайте параметр, вы можете проверить его с помощью исходного кода Android https://github.com/flutter/plugins/blob/master/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/FlutterWebView.java

режим кеширования по умолчанию зависит от iOS WKWebView и Android WebView
режим кеширования по умолчанию для Android WebView - LOAD_DEFAULT https://developer.android.com/reference/android/webkit/WebSettings#LOAD_DEFAULT
Режим использования кеша по умолчанию. Если тип навигации не требует какого-либо конкретного поведения, используйте кэшированные ресурсы, когда они доступны и не истекли, в противном случае загрузите ресурсы из сети.

person chunhunghan    schedule 06.12.2019
comment
Я использовал webview_flutter, и каждый раз, когда я открываю веб-просмотр, его загрузка занимает несколько секунд. Как вы говорите, режим использования кеша установлен по умолчанию, но похоже, что он не работает. Что мне делать: flutter_inappwebview или flutter_webview_plugin? @chunhunghan - person hoangquyy; 06.12.2019
comment
Вы можете провести простой тест. Я нахожу сравнение производительности только между Native WebView и Flutter WebView. - person chunhunghan; 06.12.2019
comment
А какой лучше? @chunhunghan - person hoangquyy; 06.12.2019
comment
Вы имеете в виду, что открытый WebView медленный или WebView уже открыт, но открытый URL-адрес работает медленно? - person chunhunghan; 06.12.2019
comment
Для открытого URL. нет явного победителя. На некоторых сайтах быстро, но на некоторых может работать медленнее. - person chunhunghan; 06.12.2019
comment
Спасибо вам. Я перехожу на flutter_webview_plugin, чтобы убедиться, что он использует кешированное приложение. - person hoangquyy; 06.12.2019