我想我已经找到下面问题的原因了。
,如果我运行以下代码:
var fileReader = new FileReader();
fileReader.onloadend = function (evt) {
console.log("read success");
console.log(evt.target.result);
};
控制台记录"read success",但没有其他内容。看起来文件读取器正在查看文件,但没有提取二进制数据。
原始问题:我正在一个应用程序上工作,它需要检查的照片有exif数据(gps具体)上传到服务器之前。我发现通过stackoverflow,这个API似乎是最好的推荐:
https://github.com/guilhermefarias/cordova-exif我已经通过电子邮件发送了该API的开发人员,但没有听到回音,我也尝试了另外2个exif API,但我得到了同样的错误。
我得到的问题是,返回的对象总是回来作为"未定义"当我知道照片有exif(我已经测试了exif查看器)。
即使使用github页面上的示例代码,也会返回"undefined"
var options = {
quality: 90,
sourceType: 2,
destinationType: 1,
};
function onSuccess(imageURI) {
CordovaExif.readData(imageURI, function(exifObject) {
console.log(exifObject);
});
};
function onFail(message) {
console.log('Failed because: ' + message);
};
navigator.camera.getPicture(onSuccess, onFail, options);
我在控制台没有看到任何权限错误,并且我已经按照文档添加了文件+相机插件。
我知道android的后期版本中有一个"bug",相机应用程序返回一个相对URI而不是一个物理位置,但我已经解决了使用图库选择器API,文件路径是:
文件:///数据/数据/io.cordova.ExifTest/缓存/IMG_20150524_104204901336210.jpg
如果我在index.html中加上上面的URI,图像就会显示在屏幕上,所以我知道这个URI是有效和正确的。
此刻,我正在通过API的代码,一行一行地试图调试它,但我希望有人在那里已经有这个问题?
我终于找到了答案:Phonegap/Cordova相机插件-如何获得照片's日期/时间戳?
我已经尝试过这个方法,但我仍然只是得到"未定义"的返回。我想我会尝试一个不同的标签(gplatitude),它工作。