Ti.media.showCamera在iPhone上抛出'undefined'错误但在Android上运行正常

时间:2012-09-05 10:52:43

标签: android ios titanium

我正在使用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();方法,所以它不会发现自己'未定义'?

1 个答案:

答案 0 :(得分:1)

Ti.media.showCamera({...应为Ti.Media.showCamera({...

此外,在成功回调中,没有接收返回的媒体数据的参数。您的media_item.media函数中有write_to_new_file(),因此您的成功回调应该是:success: function(media_item) {...