1

我正在使用 Appaccelerator 为 iOS 和 Android 构建应用程序。它在 Android 上运行良好,但每次我尝试在 iOS 设备上打开它时都会引发“未定义”错误。奇怪的是,它没有显示正确的错误消息。

一开始我以为是构建问题,所以我清理了项目,然后重新构建它,但事实并非如此。我也手动删除了构建文件夹,并重新构建,但仍然没有改善。

这是代码:

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(); 方法,所以它不会发现自己“未定义”?

4

1 回答 1

1

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

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

于 2012-09-05T22:40:01.020 回答