Titanium将照片添加到特定的图库

时间:2017-03-13 15:57:15

标签: ios titanium appcelerator-titanium photo-gallery

所以我有以下工作真的很好:

 button.addEventListener("click", function(e){
    Titanium.Media.showCamera({
        success:function(e){
            if(e.mediaType === Titanium.Media.MEDIA_TYPE_PHOTO){
                var imageView = Titanium.UI.createImageView({
                    image: e.media,
                    width: 'auto',
                    height: 'auto',
                    top: 50,
                    zIndex: 1
                });
                win.add(imageView);
            } else {
                alert("Only Photos aloud");
            }
        },
        error:function(e){
            alert("There was an error");
        },
        cancel:function(e){
            alert("The event was cancelled");
        },
        allowEditing: true,
        saveToPhotoGallery: true,
        mediaTypes:[Titanium.Media.MEDIA_TYPE_PHOTO,Titanium.Media.MEDIA_TYPE_VIDEO],
        videoQuality:Titanium.Media.QUALITY_HIGH
    }); 
});

saveToPhotoGallery只会将拍摄的照片添加到iOS照片应用中的默认图库。 我需要将照片添加到iOS照片应用程序中的特定文件夹中。 有谁知道我怎么能用Titanium做到这一点? 我一直在搜索intewebs,但没有找到任何关于如何将拍摄的照片添加到特定文件夹的内容。

感谢帮助人员

克里斯

1 个答案:

答案 0 :(得分:0)

  

但是,让我指定文件只能在IOS中保存在应用程序目录中,但在android中你可以将它保存在externalStorage中。您可以通过以下链接查看文档:

     

https://docs.appcelerator.com/platform/latest/#!/guide/Filesystem_Access_and_Storage

您可以使用以下代码轻松将文件保存到文件夹中:

if (OS_ANDROID) {
    var f12 = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory);
} else {
    var f12 = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory);
}

var galleryImg = e.media;
var fileToSave = null;
var fileName = 'IMG' + todayDate + "HB" + Ti.App.Properties.getInt('imgCounter') + '.jpg';
if (OS_ANDROID) {
    fileToSave = Titanium.Filesystem.getFile(f12.resolve(), fileName);
} else {
    fileToSave = Titanium.Filesystem.getFile(f12.resolve(), fileName);
}
fileToSave.write(galleryImg);

如果您想创建子目录,请使用以下代码:

var dir = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,'mysubdir');
dir.createDirectory(); // this creates the directory

但是,我要指定该文件只能保存在应用程序目录 IOS ,但在 android 中可以将其保存在 externalStorage 。您可以通过以下链接查看文档:

https://docs.appcelerator.com/platform/latest/#!/guide/Filesystem_Access_and_Storage

修改

  

你可以这样做:

// get the TiBlob 
var blob = img_view.toImage();

// try to save the image the image
Ti.Media.saveToPhotoGallery(blob,{
    success: function(e){
        if (callback == undefined) {
           alert('Saved image to gallery');
        } else {
           callback();
        }
    },
    error: function(e){
        alert("Error saving the image");
    }
});

祝你好运,干杯