当前位置:  开发笔记 > 编程语言 > 正文

为什么WebView无法打开某些本地URL(Android)?

如何解决《为什么WebView无法打开某些本地URL(Android)?》经验,为你挑选了1个好方法。

我有一个WebView我用来打开存储在assets/我的项目目录中的一些文件.它适用于大多数文件,但有一个特别是(我确定其他我没有找到),它只是不会打开.

我遇到问题的文件名为:

"assets/ContentRoot/Photos/XXX Software Logo - jpg - 75%.JPG"

当我将其传递给它WebView,并显示错误页面时,它显示为:

"file:///android_asset/ContentRoot/Photos/XXX%20Software%20Logo%20-%20jpg%20-%2075%.JPG"

然后我尝试运行URLEncoder.encode()它并获得错误页面,其URL显示为:

"file:///android_asset/ContentRoot/Photos/XXX+Software+Logo+-+jpg+-+75%.JPG"

这些URL都不能打开文件(它们对我来说都没问题).有人有主意吗?

更新:如果我%手工编码(使用%25,如commonsware.com建议)然后它加载图像,但它尝试将其解析为文本,而不是图像,所以我只是得到了很多(基本上)垃圾.

主持者imgur.com

另外,引用带有相对URL的HTML文档中的图像不起作用(可能是因为它没有被解析为图像?):



Jeremy Logan.. 9

好吧,在花了太长时间之后,我已经弄清楚发生了什么.基本上,如果存储在assets/目录中的图像在其文件名中包含空格(例如,""),则它们将不会呈现为图像.

myWebView.loadUrl("file:///android_asset/testimage.jpg");

工作良好.然而,

myWebView.loadUrl("file:///android_asset/test+image.jpg");

只是抛出一个未找到的错误和

myWebView.loadUrl("file:///android_asset/test image.jpg");
// and
myWebView.loadUrl("file:///android_asset/test%20image.jpg");

显示它显示不正确(作为文本...查看有问题的屏幕截图).

这种意外行为出现在(至少)1.5,1.6和2.0上,我提交了一份错误报告.



1> Jeremy Logan..:

好吧,在花了太长时间之后,我已经弄清楚发生了什么.基本上,如果存储在assets/目录中的图像在其文件名中包含空格(例如,""),则它们将不会呈现为图像.

myWebView.loadUrl("file:///android_asset/testimage.jpg");

工作良好.然而,

myWebView.loadUrl("file:///android_asset/test+image.jpg");

只是抛出一个未找到的错误和

myWebView.loadUrl("file:///android_asset/test image.jpg");
// and
myWebView.loadUrl("file:///android_asset/test%20image.jpg");

显示它显示不正确(作为文本...查看有问题的屏幕截图).

这种意外行为出现在(至少)1.5,1.6和2.0上,我提交了一份错误报告.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有