WebView缓存图片的获取
来源:互联网 发布:ubuntu系统u盘制作 编辑:程序博客网 时间:2024/06/11 18:51
在Native+Web的手机APP中,有时候需要获取Web中的某个图片分享到微博或微信等。所以如何从缓存中获取图片呢?以下就是解决方案。
1,对应低版本的android OS中可以通过webviewcache.db,通过图片的url获取对应的filepath。
具体的请看:http://my.oschina.net/u/1777508/blog/325123
2,从API 11(Android 3.0)开始,WebViewClient引入了一个函数 shouldInterceptRequest。
shouldInterceptRequest这个回调可以通知主程序WebView处理的资源(css,js,image等)请求,并允许主程序进行处理后返回数据。
如果主程序返回的数据为null,WebView会自行请求网络加载资源,否则使用主程序提供的数据。注意这个回调发生在非UI线程中,所以进行UI系统相关的操作是不可以的。
shouldInterceptRequest有两种重载。
public WebResourceResponse shouldInterceptRequest (WebView view, String url) 从API 11开始引入,API 21弃用
public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request) 从API 21开始引入
例如:
WebView webView = new WebView(this);
webView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
Log.i(LOGTAG, "shouldInterceptRequest url=" + url + ";threadInfo" + Thread.currentThread());
WebResourceResponse response = null;
if (url.contains("logo")) {
try {
InputStream localCopy = getAssets().open("droidyue.png");
response = new WebResourceResponse("image/png", "UTF-8", localCopy);
} catch (IOException e) {
e.printStackTrace();
}
}
return response;
}
});
setContentView(webView);
webView.loadUrl("http://m.sogou.com");
来源:http://droidyue.com/blog/2014/11/23/block-web-resource-in-webview/
所以在shouldInterceptRequest函数中,可以自己管理图片下载或图片缓存,这样就可以随心所欲的管理网页的缓存内容了。
- WebView缓存图片的获取
- webview中图片的获取、保存、展示、缓存处理
- 从WebView缓存中获取网页图片
- Android 从WebView缓存中获取网页图片
- Android 从WebView缓存中获取网页图片
- Android 从WebView缓存中获取网页图片
- WebView获取点击的图片的URL
- 获取WebView中的图片
- webview点击事件,图片缓存
- Android/webview/图片硬缓存
- android 从webview中读取缓存的图片
- ImageLoader获取本地缓存图片的bitmap
- webview 设定和使用缓存来获取网页中的js,css和图片资源
- Android WebView的缓存!!!
- Android WebView的缓存
- Android WebView的缓存
- Android WebView的缓存!!!
- WebView的缓存分析
- 嵌入式入门
- TinyAdmin前端展现框架
- 多线程同步方法
- ThinkPHP RBAC功能小结
- Android Dalvik虚拟机初识
- WebView缓存图片的获取
- linux文件系统之文件组织方式
- LintCode比较字符串
- C++中构造函数初始化列表为什么会比构造函数中赋值要高效
- 2015070301 - EffactiveJava笔记 - 第52条 通过接口引用对象(1)
- Array.sort()
- 计算机网络复习资料
- linux下关机
- 查看图片的Domo