gpt4 book ai didi

android - 网页 View 不缓存

转载 作者:行者123 更新时间:2023-11-30 05:06:07 25 4
gpt4 key购买 nike

我一直在尝试在 Android WebView 中启用缓存,但我在 SO 上看到的每个配置都以失败告终。

这是我的:

我有一个网页,里面有一个 Iframe,循环加载 10-12 个页面,这些页面中的所有内容都有 Cache-Control: max-age=86400 header 。

如果我在浏览器中正常加载这些页面,它们会工作并且页面会被缓存。

这是我的配置

        getSettings().setJavaScriptEnabled(true);
getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
getSettings().setDomStorageEnabled(true);
getSettings().setMediaPlaybackRequiresUserGesture(false);
getSettings().setAppCacheEnabled(true);
getSettings().setAppCachePath(context.getCacheDir().getAbsolutePath());
getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

这些设置适用于媒体播放和启用 js

编辑

我构建了一个新的应用程序并尝试使用 loadUrl 方法加载谷歌并在网络关闭时使用按钮重新加载它,它能够在没有互联网的情况下重新加载页面这意味着它缓存了该页面.

所以问题是 webview 没有缓存页面正在加载的页面。

如果有人知道我们如何缓存由 webview 页面加载的内容,那将是一个很大的帮助。

-谢谢

最佳答案

所以在我们的 iframe 和 Android 设备上进行了一系列详细测试后,我开始意识到 WebView 不会缓存大于特定大小的文件。

我的一个由 iframe 加载的页面有一个 30mb 的视频,该视频没有被缓存并且导致大量数据消耗。 (因为它每 2 分钟渲染一次)

我将它减小到 10mb,它仍然没有缓存它,最后我将它减小到 980kb,它开始缓存。

我不确定 WebView 每个文件的缓存限制,但我遇到了一个有趣的错误 here其中指出在 Android 4.3 之后,总缓存限制被硬编码为 20mb,我们可以在这个 file 中找到它。在第 98 行。

如果有人知道这些限制记录在何处,请在此处回复以告知社区。

关于android - 网页 View 不缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54573169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com