Phonegap – Bild von der URL in die Geräte-Fotogalerie speichern

Ich entwickle eine Phonegap-Anwendung und ich muss das Bild von der URL in die Geräte-Fotogalerie speichern.

Ich kann nicht auf der Phonegap Api einen Weg, um es zu tun und auch ich habe nicht finden, Phonegap Plugin für das.

  • Wie erstelle ich Layout-Small-Land-Ordner?
  • Warum sollte ich Fragment in Android verwenden?
  • Android-java: check boolesche Wertprüfung für null
  • Android Animation XML Fragen
  • Überprüfen Sie die Existenz eines Fragments mit Robotium - Android
  • ListView OnItemClickListener antwortet nicht?
  • Ich brauche es, um mit Iphone & Android zu arbeiten

    Danke vielmals!

  • Google Maps v2 - stelle sowohl meinen Standort als auch den Zoom ein
  • Holen Sie absoluten Pfad ab, wenn Sie das Bild aus der Galerie Kitkat android auswählen
  • Fragmente wiederherstellen Zustand auf Orientierung geändert
  • Unterschied zwischen versionName und versionNumber in Android
  • Ionic Android Build hörte auf zu arbeiten
  • Navigationsschublade halbtransparent über Statusleiste funktioniert nicht
  • 9 Solutions collect form web for “Phonegap – Bild von der URL in die Geräte-Fotogalerie speichern”

    Dies ist Datei Download Code, die von jedermann verwendet werden kann. Sie haben nur drei Parameter, um diese wie-

    1) URL

    2) Ordnername, den Sie in Ihrer Sdcard erstellen möchten

    3) Dateiname (Sie können einen beliebigen Namen eingeben)

    Alle Arten von Dateien können mit diesem Code heruntergeladen werden. Du kannst das als .js verwenden. Und das geht auch auf IOS .

     //First step check parameters mismatch and checking network connection if available call download function function DownloadFile(URL, Folder_Name, File_Name) { //Parameters mismatch check if (URL == null && Folder_Name == null && File_Name == null) { return; } else { //checking Internet connection availablity var networkState = navigator.connection.type; if (networkState == Connection.NONE) { return; } else { download(URL, Folder_Name, File_Name); //If available download function call } } } 

    // Zweiter Schritt, um Schreibberechtigung und Ordnererstellung zu erhalten

     function download(URL, Folder_Name, File_Name) { //step to request a file system window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fileSystemSuccess, fileSystemFail); function fileSystemSuccess(fileSystem) { var download_link = encodeURI(URL); ext = download_link.substr(download_link.lastIndexOf('.') + 1); //Get extension of URL var directoryEntry = fileSystem.root; // to get root path of directory directoryEntry.getDirectory(Folder_Name, { create: true, exclusive: false }, onDirectorySuccess, onDirectoryFail); // creating folder in sdcard var rootdir = fileSystem.root; var fp = rootdir.fullPath; // Returns Fulpath of local directory fp = fp + "/" + Folder_Name + "/" + File_Name + "." + ext; // fullpath and name of the file which we want to give // download function call filetransfer(download_link, fp); } function onDirectorySuccess(parent) { // Directory created successfuly } function onDirectoryFail(error) { //Error while creating directory alert("Unable to create new directory: " + error.code); } function fileSystemFail(evt) { //Unable to access file system alert(evt.target.error.code); } } 

    // Dritter Schritt zum Herunterladen einer Datei in den erstellten Ordner

     function filetransfer(download_link, fp) { var fileTransfer = new FileTransfer(); // File download function with URL and local path fileTransfer.download(download_link, fp, function (entry) { alert("download complete: " + entry.fullPath); }, function (error) { //Download abort errors or download failed errors alert("download error source " + error.source); //alert("download error target " + error.target); //alert("upload error code" + error.code); } ); } 

    Nützlicher Link

    Die neueste Version von Cordova (3.3+), die neuere (1.0.0+) Version der Datei verwendet Dateisystem-URLs anstelle des Dateipfads. Also, um die akzeptierte Antwort Arbeit mit der neueren Version in der FileSystemSuccess-Funktion zu machen, ändern Sie die Zeile:

     var fp = rootdir.fullPath; 

    nach:

     var fp = rootdir.toURL(); 

    Ein weiterer einfacher Weg ist, das Cordova / Phonegap Plugin Canvas2ImagePlugin zu benutzen . Installiere es und füge die folgende Funktion deinem Code hinzu, der auf getImageDataURL () von Raul Sanchez (Danke) basiert.

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

    Benutze es so:

     var success = function(msg){ console.info(msg); }; var error = function(err){ console.error(err); }; saveImageToPhone('myimage.jpg', success, error); 

    Dies kann mit Handy-Spalt- Datei- Plugin erfolgen:

      var url = 'http://image_url'; var filePath = 'local/path/to/your/file'; var fileTransfer = new FileTransfer(); var uri = encodeURI(url); fileTransfer.download( uri, filePath, function(entry) { console.log("download complete: " + entry.fullPath); }, function(error) { console.log("download error source " + error.source); console.log("download error target " + error.target); console.log("upload error code" + error.code); }, false, { headers: { "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA==" } } ); 

    Vielleicht könntest du das Plugin probieren, das ich für IOS geschrieben habe

    Hier ist die git link: https://github.com/Nomia/ImgDownloader

    Kurzes Beispiel:

     document.addEventListener("deviceready",onDeviceReady); //google logo url url = 'https://www.google.com/images/srpr/logo11w.png'; onDeviceReady = function(){ cordova.plugins.imgDownloader.downloadWithUrl(url,function(){ alert("success"); },function(){ alert("error"); }); } //also you can try dataUri like: 1px gif //url = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' 

    Sie können auch eine lokale Datei auf Bildgalerie speichern, verwenden Sie die Download- Methode

    Ich arbeite derzeit an der Cordova-Plugin-Fotobibliothek .

    Es kann das Bild speichern, das von url gegeben ist (Datei: // oder Daten :). Arbeiten auf ios und android, jpeg / png / gif:

     cordova.plugins.photoLibrary.saveImage(url, 'My album', function () {}, function (err) {}); 

    Ich habe anfangs "Could not create target file" .

    Für diese Verwendung encodeURI() auf der URL zum Download:

     var DBuri = encodeURI("https://dl.dropbox.com/u/13253550/db02.xml"); fileTransfer.download( DBuri, sPath + "database.xml", 

    Und der Code in diesem Thread funktionierte perfekt. Einfach hier aussetzen

    Einfachsten Ansatz

    Wenn es dir gut geht, wenn du im Download-Ordner bist, folge folgendes

    1. Installieren Sie das In-App-Browser-Plugin

       cordova plugin add cordova-plugin-inappbrowser 
    2. Erstellen Sie einen Download-Button mit

       onclick="window.open("Image_URL", '_system'); 

    Nicht nur wird das heruntergeladen das Bild, das es bieten wird, um das Bild in der entsprechenden App oder Browser zu öffnen.

    Ich säuberte und wickelte den von Suhas vorgeschlagenen Code ein – die akzeptierte Antwort in einem Winkeldienst, damit er leicht in anderer Anwendung verwendet werden kann. Hier findest du den Snipet.

    Um es zu benutzen, fügen Sie das Skript in app.js (und Ihre index.html Datei) dann ein:

     angular.module('myApp.controllers.whatever', []) .controller('WhateverController', function ($scope, SaveToGalleryService) { $scope.savePhoto = function(photoUrl, folderName, fileName, callback) { var fileName = new Date().getTime(); SaveToGalleryService.saveToGallery(photoUrl, "Kiddiz.me", fileName, function saveSuccess(res) { console.log("Photo ", photoUrl, "photo saved", res); if (callback) { callback(true, res); } }, function saveFail () { console.log("Photo ", photoUrl, "failed to save photo"); if (callback) { callback(false); } }); } }); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.