javascript - 在android中提取exif数据(phonegap)

标签 javascript android cordova

我想我已经找到了以下问题的原因。

如果我运行以下代码:

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/

相关文章:

javascript - 移动跨度标签动画

java - 使用 SimpleXml 和 Retrofit 的 Android RSS 阅读器 - 媒体 :thumbnail parse issue

android - 链式启动多项 Activity

javascript - 如何在PhoneGap中添加点击事件到动态 ListView ?

javascript - 带有选择的 AngularJS 指令

javascript - 在 JavaScript 中使用++ 时的奇怪行为

javascript - NodeJS SQL 在 for 循环中返回 'Cannot read property ' x' of undefined'

android - 未安装动态功能模块

android - 使用 phonegap 获取应用程序的热图分析数据

javascript - 使用 InAppBrowser 的 Apache Cordova 重定向