Android webview加载本地图片

原创 2013年11月25日 17:42:30

出于安全的考虑,一般情况下webview并不允许网页读取和操作网页文件所在文件夹外的文件。

在网上搜索后,发现有3种可行的方法:

1、使用WebView自身的资源拦截与回调来实现该功能;
WebView的shouldInterceptRequest回调从API 11才开始引入,所以使用该方法不能兼容2.2与2.3的系统;

2、img的src使用base64的编码格式,这种方法会造成html文件较大,轻量的网页可以考虑使用;

3、img的src使用content协议,通过ContentProvider来进行提供相应资源; 

方法2和方法3都可以兼容2.x的系统


方法3的例子:

com.packagename.provider;
public class MyProvider extends ContentProvider { 
     @Override
     public ParcelFileDescriptor openFile(Uri uri, String mode){
        URI fileURI = URI.create( "file://" + uri.getPath() );
        File file = new File( fileURI );

        ParcelFileDescriptor parcel = null;
        try {
            parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
        } catch (FileNotFoundException e) {
            Log.e( TAG, "Error finding: " + fileURI + "\n" + e.toString() );
        }

        return parcel;

AndroidManifest.xml

 <provider
        android:name=".provider.MyProvider"
        android:authorities="com.packagename" />

You can then access your files which would normally be

 file://sdcard/Android/data/com.packagename/image.jpg

by using

 content://com.packagename/sdcard/Android/data/com.packagename/image.jpg

So essentially replace file:// with content://com.packagename


http://stackoverflow.com/questions/11303118/android-set-a-local-image-to-an-img-element-in-webview



Android使用WebView加载本地图片终极大杀招

WebView 主要调用三个方法:loadUrl、loadData、loadDataWithBaseURL。1、loadUrl 直接加载网页、图片并显示。(本地或是网络上的网页、图片、g...
  • iloveaman
  • iloveaman
  • 2016年04月14日 13:12
  • 4053

Webview加载本地图片的方案对比

关于webview加载本地图片的四种方案,利用一个缓存系统+压缩模块+多线程工作来完成优化...
  • qq122627018
  • qq122627018
  • 2016年11月29日 09:34
  • 4354

Webview打开本地图片文件选择解决方案

Webview打开本地图片选择器解决方案Webview打开本地图片选择器十分之麻烦,其在安卓系统3x 4x 5x上的行为都不同,处理也不同,所以之前差点崩溃。经过测试和完善,最终其在各个版本上都能完美...
  • zhtsuc
  • zhtsuc
  • 2015年10月15日 16:20
  • 15975

Webview打开本地文件、图片选择的解决方案。版本兼容问题

  • 2016年11月09日 10:54
  • 3.44MB
  • 下载

webview中的img标签加载Android本地的图片

很好的在移动端嵌入了Hmtl页面,并且通过Android代码将本地图片赋给了html页面中的img标签...
  • GISuuser
  • GISuuser
  • 2017年08月30日 19:54
  • 1421

android Webview加载本地图片,自适应布局大小

  • 2016年06月20日 11:16
  • 14KB
  • 下载

webview打开图库并获取安卓文件图片

1,实现安卓webview 打开安卓图库并拿到文件,最后调用js实现文件上传(未实现)。 2,网页代码如下:一个简单的文件选择按钮。 HTML PUBLIC "-//W3C//DTD HTML 4....
  • chencaishengsic
  • chencaishengsic
  • 2016年03月30日 16:52
  • 2766

Android 4.4 以上 Webview 中显示本地图片

本文主要介绍Android 4.4 以上 Webview 中显示本地图片,请看文章!
  • itluochen
  • itluochen
  • 2016年11月29日 10:03
  • 1172

Android webView 加载网页时,使用本地图片替换网页内的图片

RT,本质目的是阻止网页图片加载,将图片放在本地,然后在app中替换,以加快反应速度。     以前提过这个问题,没能解决,因为3.0以上才提供了替换网页资源的接口(WebResourceRespo...
  • daochengyue4543
  • daochengyue4543
  • 2017年01月08日 18:04
  • 808

webview html页面加载本地js及img src

我们的客户端软件主要部分用webview的表现形式来实现。当然这个东东有优点、缺点也不少。 今天,我们要解决的就是,如何从节省流量的角度来优化加载速度。 web页面部分,我们可能要用到jquery...
  • cauchy8389
  • cauchy8389
  • 2013年02月27日 10:45
  • 18981
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android webview加载本地图片
举报原因:
原因补充:

(最多只允许输入30个字)