Điều đó nghe có vẻ giống như một cơ chế lưu vào bộ nhớ cache webview đơn giản đối với tôi.
thử này
WebView webView = new WebView(context);
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); // load online by default
if (!isNetworkAvailable()) { // loading offline
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
Phương pháp isNetworkAvailable() kiểm tra đối với một kết nối hoạt động mạng:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
webView.loadUrl ("http://www.google.com");
Cuối cùng, đừng quên thêm ba điều khoản sau đây để AndroidManifest.xml của bạn:.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
Các bạn đã cố gắng thiết lập này viewer.getSettings() setCacheMode (WebSettings.LOAD_DEFAULT) để WebView? – sha