4

私の iOS PhoneGap アプリには、フォト ギャラリーが表示されます (サーバーから読み込まれます)。画像ページに、画像を iOS カメラロールに保存するボタンを追加することはできますか? (モバイルサファリのタップアンドホールドに似ています)

これがプラグインとして実行する必要がある場合は、正しい方向に向ける情報をいただければ幸いです。(obj C の私のスキルは非常に不足しています)。

ありがとう!

4

1 に答える 1

5

Cordova/Phonegap プラグインCanvas2ImagePluginの助けを借りて可能です。それをインストールし、次の関数をコードに追加します。Raul Sanchez (Thanks!) によるgetImageDataURL()に基づいています。

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

次のように使用します。

var success = function(msg){
    console.info(msg);
};

var error = function(err){
    console.error(err);
};

saveImageToPhone('myimage.jpg', success, error);
于 2014-04-04T19:30:25.613 に答える