android - 在WebView android中缓存到本地存储
问题描述
我正在使用 URL 在 webview 中显示一个 html 页面,我想将该 html 文件从 webview 缓存存储到设备的本地存储中。有没有可能,请帮忙。
解决方案
网页视图缓存
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"/>
推荐阅读
- sql - SSRS 如果条件小于等于时间
- angular - 将 url blob 响应转换为图像 Angular
- airflow - 同一 GKE 集群上的多个 Airflow 设置
- node.js - [NextAuth]:如何在后端以编程方式登录用户?
- android - Android包测试没有与目标匹配的签名
- sql - 在Oracle数据库中创建表时检查日期属性
- django - drf-yasg:图像字段未在 swagger ui 中显示
- redis - redis-rdb-tools 没有转换成 json
- python - 如何将程序启动代码(__name__ ==“__main__”)排除在 pytest 覆盖率报告中?
- java - MyEclipse 中的 Ant 类路径构建问题