我正在尝试根据使用PhoneGap/Cordova Camera Plugin从设备图库中选择的图像在我的应用中设置img标记的来源.
它以前在旧版本的Android(3.3)上工作,并且可以在iOS上正常工作,但现在无法解析4.4(KitKat)上的图像路径.
返回的图像URL的返回路径如下所示:
content://com.android.providers.media.documents/document/image%3A352
当我使用此路径通过JavaScript设置为图像src时,无法解析URL,从而产生加载错误.使用相机拍照时没有问题,只有在从画廊中选择现有照片时才会出现这种情况.
我已尝试编码到base64并尝试了文档中提到的方法,resolveLocalFileSystemURI();
但我没有运气这些.我也试过删除相机插件并重建应用程序,但没有快乐.
我的猜测是KitKat处理图库的方式发生了变化,PhoneGap/Camera插件尚未更新以适应这种情况.
在修复此错误时,一种非常脏的解决方法适用于我.在极端必要的情况下使用:)
if (imageURI.substring(0,21)=="content://com.android") { photo_split=imageURI.split("%3A"); imageURI="content://media/external/images/media/"+photo_split[1]; }
Android 4.4中出现了一些带有图像URI编码的东西.
这里针对Cordova提出了一个错误:https://issues.apache.org/jira/browse/CB-5398
在文档的Getpicture中,下了Android尽皆部分,讨论这一问题,并指向的StackOverflow问题与解决方法(编辑相机插件,Java代码,迫使它打开图片库应用程式,而不是存储访问架构的应用程序.)
您可以做的另一件事是将目标类型设置为DATA_URL.