Android 如何缓存URL并在脱机时加载?
这是我的密码。由于我是安道尔的新手,我不知道该怎么办。这就是我尝试过的。我是否也需要一些方法来将缓存保存到存储中Android 如何缓存URL并在脱机时加载?,android,android-webview,offline-caching,Android,Android Webview,Offline Caching,这是我的密码。由于我是安道尔的新手,我不知道该怎么办。这就是我尝试过的。我是否也需要一些方法来将缓存保存到存储中 public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVie
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
String url="https://www.facebook.com";
WebView webView = (WebView) findViewById(R.id.webview_new);
webView.setWebViewClient(new WebViewClient());
if(!isNetworkAvailable()){
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
webView.loadUrl(url);
}
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
}
您可以在
isNetworkAvailable()
之前添加此cache()
,以便脱机加载URL
private void cache() {
webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath());
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // load online by default
if (!isNetworkAvailable()) { // loading offline
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
}
看看这个,这可能会对你有所帮助,看看@Xantosh一些网站声明没有缓存,这意味着一些网页无法缓存。