【发布时间】:2014-06-19 15:23:30
【问题描述】:
我的函数拦截了对 webview 的所有请求。比如加载一个页面。
@Override
public WebResourceResponse shouldInterceptRequest(final WebView view,
String url) {...}
所有 html、css 和 js 文件都已正确回答,但是当我想发送 png 或 gif 图像作为响应时,它不起作用。他们可能需要特殊的 MIME 类型,但我无法使其工作。
不得不说,我要发送的图片是用HttpURLConnection在InputStream中接收并转换为String,并保存在一个文件夹中;所以当我需要图像时,我只需将该文件(String)转换为InputStream。
InputStream is = new ByteArrayInputStream(imageString.getBytes());
return new WebResourceResponse("text/html", "UTF-8", is);
我尝试了image/gif、image/png,但没有任何效果。
有什么想法吗?
【问题讨论】:
-
如果是发送图片,为什么要将响应内容设置为
"text/html"?图像不是 html 也不是文本。在最坏的情况下,使用"application/octet-stream",就好像它是一个通用的下载文件。 -
WebResourceResponse("image/png", "binary", is);应该适用于 PNG 图像,无需任何转换(例如某些帖子中建议的 base64)。
标签: java android webview png gif