Tôi đang cố gắng tải phiên bản HTML5 được lưu vào bộ nhớ cache của một trang web để hiển thị khi mạng nằm bên trong chế độ xem web.hiển thị phiên bản webview được lưu trong bộ nhớ cache trên android
Tôi đã ghi đè onReceivedError
ok và khi mạng xuống phương thức này được gọi. Vấn đề là nó hiển thị thông báo "Trang Web không có sẵn" chung.
Tôi làm cách nào để hiển thị phiên bản HTML5 được lưu trong bộ nhớ cache của trang? Bộ nhớ ngoại tuyến của webapp chắc chắn hoạt động, vì nó hoạt động tốt trong phiên bản dành cho máy tính để bàn của Firefox và Chrome.
Tôi biết tôi có thể gọi loadData
vào chế độ xem theo cách thủ công trong onReceivedError
, nhưng tôi không chắc chắn nơi tôi có thể lấy giá trị được lưu trong bộ nhớ cache HTML5.
Lưu ý: Nếu tôi đặt một số dữ liệu giả trong loadData
như view.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");
và sau đó nhấp lại (bằng cách phát hiện lại sự kiện và kêu gọi webview.goBack();
sau đó phiên bản cache của trang được hiển thị ok
Dưới đây là một số dòng mã. tôi thêm vào thiết lập webview:.
webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webview.getSettings().setAppCacheMaxSize(1024*1024*8);
webview.getSettings().setAppCachePath("/data/data/com.stuff.android/cache");
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setAppCacheEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
này có lẽ là "sạch" giải pháp, vì vậy bệnh cung cấp cho bạn những điểm bounty :) – Marty