在Cordova中保存照片到iOs相册



是否有一种方法来下载和保存照片从URL到相册/cameraroll在iOs使用Cordova?

我用FileTransfer下载照片,但是它们不像在android图库中那样显示出来。我想应该有一些插件,但我找不到一个。或者其他方法?

如果它不能在Cordova中完成,它可以完成,所以我可以在Objective C中为Cordova创建插件吗?

你需要像这样安装Canvas2Image:

cordova plugin add https://github.com/devgeeks/Canvas2ImagePlugin.git

(或者用'phonegap'代替'cordova')

接下来,您需要添加一个函数(在本例中为saveImageToPhone()),该函数调用您刚刚添加到项目中的插件。这个函数将从按钮选择器调用。例如:

<button onclick="saveMyPic("path/to/my/pic.jpg")">Save a pic to library</button>

它不一定是一个按钮,很明显,你可以让函数调用并传递任何你喜欢的URL。这个"URL"可以是FileTransfer成功返回的路径。

下面是我的代码:

function saveMyPic(myURL){
        var MEsuccess = function(msg){
           console.info(msg);
        };
        var MEerror = function(err){
            console.error(err);
        };
        saveImageToPhone(myURL, MEsuccess, MEerror);
}

function saveImageToPhone(url, success, error) {
    var canvas, context, imageDataUrl, imageData;
    var img = new Image();
    img.onload = function() {
        canvas = document.createElement('canvas');
        canvas.width = img.width;
        canvas.height = img.height;
        context = canvas.getContext('2d');
        context.drawImage(img, 0, 0);
        try {
            imageDataUrl = canvas.toDataURL('image/jpeg', 1.0);
            imageData = imageDataUrl.replace(/data:image/jpeg;base64,/, '');
            cordova.exec(
                success,
                error,
                'Canvas2ImagePlugin',
                'saveImageDataToLibrary',
                [imageData]
        );
    }
    catch(e) {
        error(e.message);
    }
};
try {
    img.src = url;
}
catch(e) {
    error(e.message);
}

}现在只需从您希望的任何位置调用第一个函数。如果它工作,您将得到一个console.log,显示

图像得救了!

我希望这对你有帮助!

@WillCo解决方案可能会完成这项工作,但是创建画布并将画布日期转换为base64来实现像下载照片一样简单的目标似乎至少没有必要。

我最近翻出了这个项目的旧代码。我为iOS创建了一个小的本地插件,可以直接从给定的URL下载图像到设备上的系统库。

我张贴我的解决方案到GitHub:https://github.com/Kocik/cordova-photo-to-album-plugin

工作原理:

安装插件:cordova plugin add https://github.com/Kocik/cordova-photo-to-album-plugin/

在你的javascript添加:window.plugins.phototoalbum.download(url, successCallback, failCallback);

相关内容

  • 没有找到相关文章

最新更新