首页 > 解决方案 > 在WebView android中缓存到本地存储

问题描述

我正在使用 URL 在 webview 中显示一个 html 页面,我想将该 html 文件从 webview 缓存存储到设备的本地存储中。有没有可能,请帮忙。

标签: androidwebview

解决方案


网页视图缓存

WebView webView = new WebView( context );
webView.getSettings().setAppCacheMaxSize( 6 * 1024 * 1024 ); // 6MB size
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 );
}

webView.loadUrl( "http://www.stackoverflow.com" );

检查互联网可用性并向清单文件添加权限

private boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
    NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
} 

互联网读写存储权限

<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"/>

推荐阅读