【发布时间】:2015-05-25 21:27:03
【问题描述】:
我想我在下面找到了问题的原因。
如果我运行以下代码:
var fileReader = new FileReader();
fileReader.onloadend = function (evt) {
console.log("read success");
console.log(evt.target.result);
};
控制台记录“读取成功”,但没有其他记录。看起来文件阅读器正在查看文件,但没有提取二进制数据。
原问题:
我正在开发一个应用程序,该应用程序需要在上传到服务器之前检查照片是否具有 exif 数据(特别是 gps)。我通过 stackoverflow 发现,这个 API 似乎是最好的推荐:
https://github.com/guilhermefarias/cordova-exif
我已向该 API 的开发人员发送了电子邮件,但没有收到回复,我还尝试了其他 2 个 exif api,但我遇到了同样的错误。
我遇到的问题是,当我知道照片有 exif(我已经用 exif 查看器测试过)时,返回的对象总是以“未定义”的形式返回。
即使使用 github 页面上的示例代码,也会返回“未定义”
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 中存在“错误”,其中相机应用程序返回相对 URI 而不是物理位置,但我已经解决了使用画廊选择器 API 的问题,文件路径是:
file:///data/data/io.cordova.ExifTest/cache/IMG_20150524_104204901336210.jpg
如果我在 index.html 中放一个上面的 URI,图像就会显示在屏幕上,所以我知道这个 URI 是有效且正确的。
目前,我正在浏览 API 的代码,逐行尝试调试它,但我希望有人已经遇到过这个问题?
【问题讨论】:
标签: javascript android cordova