【发布时间】:2015-01-02 15:03:52
【问题描述】:
我的phonegap相机插件版本是0.3.4,phonegap cli是4.1.2-0.22.10,android phonegap平台版本是3.6.4,在config.xml中构建版本3.5.0,在Android 4上测试。 x,下面是我的代码 sn-p,用于从图库或保管箱中从三星手机获取图像:
navigator.camera.getPicture(
uploadPhoto,
function(message)
{
console.log("Get Picture Failed:"+ message);
}
,
{
quality: 50,
allowEdit:false,
correctOrientation: true,
targetWidth: 800,
destinationType: navigator.camera.DestinationType.FILE_URI,
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
}
);
当我从图库中选择图像时,它总是使用 native_uri (content://) 而不是 file_uri (FILE:///),无论选择的目标类型如何。但是,当应用程序尝试通过 Dropbox 访问图像时,返回的 uri 始终为 file_uri,而与选择的目标类型无关。现在,
- 如果文件名中没有像“Photo7.jpg”这样的空格,那么它 适用于所有情况。
- 如果文件名中确实有空格,例如“照片 7” new.jpg' 那么如果它驻留在画廊中就可以正常工作,因为始终使用 native_uri 并且它消除了空间。请注意,file_uri 在文件名中仍然包含空格,但 getpicture 方法并未使用该空格。
- 现在,当应用程序尝试访问相同的图像“照片 7”时,问题就出现了 new.jpg' 通过 Dropbox。在这种情况下,返回的 uri 始终是 file_uri 并包含空格。这会导致相机 api 的 getpicture 方法失败并执行失败回调,并显示消息“获取图片失败:无法创建位图!”
有没有办法通过调整 phonegap/cordova 代码来容纳空间?否则是否有任何解决方法来 encode_uri 或其他任何东西?感谢您的帮助!
【问题讨论】:
-
这是一个 URI:您是否尝试将空格编码为
%20或+? -
@MarcB 谢谢马克!但是在phonegap camera api的情况下,只有在getpicture方法成功时,URI才会被getpicture方法抛出(魔法发生在getpicture()中的本机代码中)。如果 getpicture() 失败,我无法修改 uri,我只会收到错误消息。因此,除非我在 phonegap api 中触摸本机代码,否则我将无法对 uri 进行编码。这就是我需要帮助的地方。
标签: android cordova phonegap-plugins