android 调用远程html,Android:如何从webview中远程加载的html页面引用资源图像

我正在从WebView中的

HTML页面中加载/引用应用的资产文件夹中的图像.与大多数示例不同,HTML页面本身不在资产文件夹中,而是通过http从服务器加载.这个问题的背景是一些性能改进,通过直接从设备加载静态图像,可以减少加载时间(和传输的数据量).我不知道

Android是否有一些限制,因为通过允许从远程加载的网页访问本地文件存储,有可能利用该应用程序.

我首先尝试使用< img src =“file:///android_asset/myimage.png”>加载图像但这是失败的(显而易见的原因).我的下一次尝试是使用ContentProvider类,并使用< img src =“content://com.myapp.assetcontentprovider/myimage.png”>引用图像.该ContentProvider的实现如下:

public class AssetContentProvider extends ContentProvider

{

private static final String URI_PREFIX = "content://com.myapp.assetcontentprovider";

public static String constructUri(String url) {

Uri uri = Uri.parse(url);

return uri.isAbsolute() ? url : URI_PREFIX + url;

}

@Override

public ParcelFileDescriptor openFile(Uri uri,String mode) throws FileNotFoundException {

Log.d("AssetContentProvider",uri.getPath());

try {

return getContext().getAssets().openFd(uri.getPath().substring(1)).getParcelFileDescriptor();

} catch (IOException e) {

Log.d("AssetContentProvider","IOException for " + uri.getPath());

throw new FileNotFoundException();

}

}

// more methods irrelevant for this post

}

当加载HTML页面时,我可以在调试日志中看到,openFile()实际上是从WebView触发的,它返回一个有效的ParcelFileDescriptor对象,但仍然不显示图像.日志中没有显示错误消息,告诉我WebView拒绝加载/显示图像.任何想法如果和如何可以工作?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值