我正在使用Appaccelerator为iOS和Android构建应用程序。它在Android上工作得非常好,但每次我尝试在iOS设备上打开它时都会抛出“未定义”错误。奇怪的是,它没有显示正确的错误信息。
首先我认为这是一个构建问题,所以我清理了项目,然后重建了它,但事实并非如此。我还手动删除了build文件夹,并重建,但仍然没有改进。
以下是代码:
Rf.media.photo = {
key: 'photo',
title: 'Photo',
extension: 'jpg',
type: 'image/jpeg',
create: function(created) {
Ti.media.showCamera({
animated: false,
saveToPhotoGallery: false,
showControls: true,
success: function() {
var name = Rf.util.timestamp() + '.' + Rf.media.photo.extension;
Rf.write_to_new_file(name, media_item.media, function(file) {
created(file);
});
},
error:function(error)
{
// create alert
var a = Titanium.UI.createAlertDialog({title:'Camera'});
// set message
if (error.code == Titanium.Media.NO_CAMERA)
{
a.setMessage('Please run this test on device');
}
else
{
a.setMessage('Unexpected error: ' + error.code);
}
// show alert
a.show();
},
cancel:function()
{
},
});
}
};
当人们登上“照片”按钮时,我收到此错误消息。
[WARN] Exception in event callback. {
line = 1;
message = "'undefined' is not an object (evaluating 'Ti.Media.showCamera')";
name = TypeError;
sourceId = 52935904;
sourceURL = "file://localhost/var/mobile/Applications/F8398B04-78C4-4A45-BEE0-30EE4BFEBB00/App.app/photo.js";
有没有办法“初始化”Ti.Media.showCamera();方法,所以它不会发现自己'未定义'?
答案 0 :(得分:1)
Ti.media.showCamera({...
应为Ti.Media.showCamera({...
此外,在成功回调中,没有接收返回的媒体数据的参数。您的media_item.media
函数中有write_to_new_file()
,因此您的成功回调应该是:success: function(media_item) {...