Titanium 将照片添加到特定图库

Titanium add photo to specific 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 做到这一点? 我一直在网上搜索,但没有找到任何关于如何将拍摄的照片添加到特定文件夹的信息。

感谢大家的帮助

克里斯

But, let me specify that the file can be save in the Application Directory only in IOS but in android you can save it in the externalStorage. You can have look at the documentation through the below link :

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中。您可以通过以下 link :

查看文档

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

编辑

You Could do it this way :

// 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");
    }
});

祝你好运,干杯