webView本地缓存
来源:互联网 发布:java自动包装功能 编辑:程序博客网 时间:2024/06/05 04:02
用的aSampleCache做的缓存。但是webView页面怎么缓存以前并不知道,网上一查,居然webview自带缓存,才疏学浅,于是乎,做了一个简单的demo
public class MainActivity extends Activity { private WebView webView; private String url =" http://www.3dmgame.com/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initView(); } private void initView() { webView = (WebView) findViewById(R.id.activity_webview); webView.requestFocus(); webView.setHorizontalScrollBarEnabled(false); webView.setVerticalScrollBarEnabled(false); initWebView(); } @SuppressWarnings("deprecation") @SuppressLint("SetJavaScriptEnabled") private void initWebView() { webView.getSettings().setJavaScriptEnabled(true); // 设置 缓存模式 if (StateTest.isNetworkAvailable(MainActivity.this)) { webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); } else { webView.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK); } // webView.getSettings().setBlockNetworkImage(true);// 把图片加载放在最后来加载渲染 webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); // 支持多窗口 webView.getSettings().setSupportMultipleWindows(true); // 开启 DOM storage API 功能 webView.getSettings().setDomStorageEnabled(true); // 开启 Application Caches 功能 webView.getSettings().setAppCacheEnabled(true); onLoad(); } @SuppressWarnings("deprecation") @SuppressLint("SetJavaScriptEnabled") public void onLoad() { try { webView.setWebViewClient(new WebViewClient() { @Override public void onLoadResource(WebView view, String url) { Log.i("tag", "onLoadResource url=" + url); // 开始加载 super.onLoadResource(view, url); } @Override public boolean shouldOverrideUrlLoading(WebView webview, String url) { Log.i("tag", "intercept url=" + url); // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边 webview.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { String title = view.getTitle(); // 得到网页标题 Log.e("tag", "onPageFinished WebView title=" + title); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(getApplicationContext(), "加载错误", Toast.LENGTH_LONG).show(); } }); webView.loadUrl(url); } catch (Exception e) { return; } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { webView.goBack(); // goBack()表示返回WebView的上一页面 return true; } else { finish(); } return super.onKeyDown(keyCode, event); } /*** * 防止WebView加载内存泄漏 */ @Override protected void onDestroy() { super.onDestroy(); webView.removeAllViews(); webView.destroy(); }}
这样一个简单的功能就结束了
对了,记得添加权限
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
阅读全文
0 0
- webView本地缓存
- webview支持html5本地缓存
- webview 加载html5本地缓存以及数据库
- 使用RNCachingURLProtocol对WebView进行本地缓存
- webView缓存
- webview缓存
- WebView缓存
- 本地缓存
- 本地缓存
- 本地缓存
- 本地缓存
- IOS应用加载本地WebView禁止进行缓存(使用私有api)
- android webview & ios uiwebview和wkwebview的交互以及本地缓存
- WebView加载本地HTML
- WebView加载本地资源
- webview 加载本地html
- WebView 加载本地网页
- WebView浏览本地html
- Kotlin学习过程 三 Kotlin基础语法二
- 论文阅读笔记一(Recognizing Keystrokes Using WiFi Devices)
- windows下git识别大小写配置
- CMTime
- HDU5698(排列组合 C(a,b)modP 模板 )
- webView本地缓存
- tensorflow用于数据增强
- 搜索-G
- 《JavaScript语言精粹》笔记(3)--函数
- 对Java多线程在Netty中的应用的理解
- IIS应用服务器下MP4无法播放的问题
- Flex中的文字
- HDU 2037
- 1000万辆汽车VIN识别码数据被泄,小心买到克隆车!