【发布时间】:2015-01-09 15:22:36
【问题描述】:
我正在使用带有 Angularjs 的 Cordova 3.6.x 开发应用程序。除了我无法从从照片库中获取的图像的 exif 数据中提取日期和位置之外,一切似乎都运行良好。
我的目标设备是 Android 4+
从现在开始我测试了: - https://github.com/lorinbeer/cordova-exif-utility ( 不支持安卓 :( ) -https://github.com/guilhermefarias/cordova-exif(返回错误,例如“processMessage failed: Error: TypeError: Cannot call method 'toString' of undefined”和“processMessage failed: Message: S01 File1189144150”) - https://github.com/kamilersz/cordova-plugin-exif(无法理解它是如何工作的)
在网上我读到 Cordova 在返回图像之前会剥离所有 exif 数据。是不是真的无法获取这些数据?
你能帮我弄清楚如何解决这个问题吗?
更新
我将 Angular 与 ngCordova、ui-router 和 https://github.com/guilhermefarias/cordova-exif 一起使用。所以我正在利用 ui-router 的“解析”功能:
resolve: {
picture: ['$cordovaCamera', function($cordovaCamera) {
var options = {
quality : 75,
destinationType : navigator.camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
allowEdit : false,
correctOrientation: true,
encodingType: Camera.EncodingType.JPEG,
saveToPhotoAlbum: false
};
return $cordovaCamera.getPicture(options); //TODO: we need to handle errors
}]
}
然后在我对应的控制器里面
myApp.controller('UploadController', [ '$范围', '图片', 函数($范围,图片){
//Picture
$scope.snapShot = picture;
CordovaExif.readData(picture, function(exifObject) {
console.log(exifObject);
});
等等。
但我收到以下错误 processMessage 失败:错误:TypeError:无法调用未定义的方法“toString” processMessage 失败:堆栈:TypeError:无法调用未定义的方法“toString” 接下来是堆栈跟踪和一个我很确定是 base64 的巨大字符串,即使它不适用于我在线尝试的任何 base64 到图像解码器......
【问题讨论】:
标签: android angularjs image cordova exif