gpt4 book ai didi

android - 缓存网页以供离线使用(android)

转载 作者:行者123 更新时间:2023-11-30 01:31:56 26 4
gpt4 key购买 nike

我正在关注 this我的查询的堆栈溢出问题。代码工作正常,但在离线模式下它不会加载任何页面,而是显示没有互联网连接。

我怀疑网页是否真的被写入了缓存。

我的代码如下-

private void openURL() {
webView.getSettings().setAppCacheMaxSize(5 * 1024 * 1024); // 5MB
webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath());
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

if (!isNetworkAvailable()) {
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
Toast.makeText(MainActivity.this, "server offline. loading the cached website", Toast.LENGTH_LONG).show();
}

webView.loadUrl("http://www.google.com");
webView.requestFocus();
}

我正在显示的 toast 是在没有网络的情况下显示的。所以代码工作正常,但页面未加载。

日志

W/chromium: [WARNING:aw_network_delegate.cc(75)]    http://192.168.1.210/trackme/user/sendpagestest#-102#1
[INFO:browser_view_renderer.cc(185)] [CalculateDesiredMemoryPolicy] [58982400][180]
register, handle(0xb8d834b0) (w:720 h:1280 s:720 f:0x1 u:0x000f02)
cache file failed CRC check
[INFO:CONSOLE(12)] "Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png", source: data:text/html,chromewebdata (12)
[getaddrinfo]: hostname=192.168.1.210; servname=(null); cache_mode=(null), netid=0; mark=0
[getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
[INFO:SkUtilsArm.cpp(179)] Device supports ARM NEON instructions!
E/SelfBrailleClient: Failed to bind to service
E/SelfBrailleClient: Failed to bind to service
D/OpenGLRenderer: Flushing caches (mode 0)
D/OpenGLRenderer: Flushing caches (mode 0)
D/GraphicBuffer: unregister, handle(0xb8d63a28) (w:583 h:88 s:592 f:0x1 u:0x000f02)
E/SelfBrailleClient: Failed to bind to service
E/SelfBrailleClient: Failed to bind to service
E/SelfBrailleClient: Failed to bind to service
D/WebView: loadUrl=http://192.168.1.210/trackme/user/sendpagestest
W/chromium: [WARNING:aw_network_delegate.cc(75)] http://192.168.1.210/trackme/user/sendpagestest#-102#1
I/chromium: [INFO:CONSOLE(12)] "Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png", source: data:text/html,chromewebdata (12)
D/libc-netbsd: [getaddrinfo]: hostname=192.168.1.210; servname=(null); cache_mode=(null), netid=0; mark=0
D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0

请帮助我。

谢谢

更新

我刚刚检查了 google.com,它工作正常。但是当我使用 facebook.com 时,同样的问题出现了。

最佳答案

据我所知,如果网络服务器回复 HTTP 304(未修改),WebView 会从缓存中加载。它仍然需要将 HTTP GET 发送到 Web 服务器,并且需要网络连接。

关于android - 缓存网页以供离线使用(android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620588/

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