我想我已经找到了以下问题的原因。
如果我运行以下代码:
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 解决了这个问题,文件路径是:
文件:///data/data/io.cordova.ExifTest/cache/IMG_20150524_104204901336210.jpg
如果我在index.html中放入上述URI,图像就会显示在屏幕上,所以我知道这个URI是有效且正确的。
目前,我正在逐行检查 API 代码并尝试调试它,但我希望有人已经遇到过这个问题?
最佳答案
我终于在这里找到了答案: Phonegap / Cordova camera plugin - how to get photo's date/time stamp?
我已经尝试过这种方法,但我仍然只是得到“未定义”。我想我应该尝试不同的标签(GPSLatitude)并且它有效。
关于javascript - 在android中提取exif数据(phonegap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446240/