如何在PhoneGap网络应用程序中使用浏览器File API?

时间:2013-01-11 07:51:38

标签: cordova fileapi

前段时间我创建了一个基于PhoneGap的网络应用程序。

由于输入类型文件现在可以在iOS 6上使用,我也想使用它和原生文件API,但继续使用PhoneGap将应用程序放在Appstore中。

顺便说一句:我找到了this link,但这不起作用:每次我访问文件功能时,我都会从PhoneGap中获得一个ERROR,它基本上什么也没做。

更新

实际上获取文件(图像)并将其发送到服务器工作正常,但在此之前我想使用canvasResize调整图像大小(以减小文件大小)。当调用函数reader.readAsDataURL(file)时,我收到以下错误:

-[CDVJKDictionary pathExtension]: unrecognized selector sent to instance 0x208892b0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CDVJKDictionary pathExtension]: unrecognized selector sent to instance 0x208892b0'

更新2:

以下是我使用的相关代码:

var reader = new FileReader();
var fileInput = document.getElementById('ideaCommitFileInput');
var file = fileInput.files[0];
reader.readAsDataURL(file);

1 个答案:

答案 0 :(得分:0)

如果您要在iOS和Android上部署PhoneGap应用程序,我建议您使用适用于iOS 6设备的常规文件输入字段,并为Android和早期版本的iOS设备使用navigation.camera,假设您正在处理图片上传。

只要您的应用具有足够的“原生功能”,我怀疑Apple App评论会介意您使用HTML5 File API。

以下是使用File API检索Base64编码图像字符串的一个很好的示例:Phonegap encode image base64

希望这有帮助。