2016-06-09 2 views
0

Я создаю небольшое гибридное приложение. Я использовал cordova-base64-to-gallery plugin для скрытия изображения base64 с обрезанного изображения (используя Croppie) в файл png, который затем сохраняется в папке «Изображение» в галерее изображений телефона. Сохранение строки base64 для изображения хорошо работает до сих пор, и я вижу его в галерее изображений. Но моя проблема заключается в том, чтобы скопировать этот образ, который возвращает путь в /storage/emulated/0/Pictures/img_imageFile.png к cordova.file.dataDirectory использованием ngCordova file plugin.Скопируйте файл изображения из/storage/emulated/0/Изображения в другой каталог в кордове

Вот мой angularjs код

// Beginning the conversion process... 
cordova.base64ToGallery(base64ImageString, { 
              prefix : 'img_', 
              mediaScanner : true 
              }, 

    function (path) { 
     //path = /storage/emulated/0/Pictures/img_imageFile.png 
     //console.log(path); 
     var sourceDirectory = path.substring(0, path.lastIndexOf('/') + 1); 
     var sourceFileName = path.substring(path.lastIndexOf('/') + 1, path.length); 

     $cordovaFile.copyFile(sourceDirectory, sourceFileName, cordova.file.dataDirectory).then(function (success) { 
      //$scope.profileImage = cordova.file.dataDirectory + sourceFileName; 
      alert("Request Successfully Completed"); 
     }, function (error) { 
      console.dir(error); 
      alert("Error: " + error); // returns Error: [object Object] 
     }); 

    }, function (err) { 
      console.error(err);        
    }); 
}); 

Я работаю с Onsen2, Cordova6.2.0, Cordova-плагин-файл 4.2.0, андроид 6

Я все еще довольно новая и оценит любой решения моей проблемы или лучшего подхода. Спасибо :)

ответ

1

Я нашел его! После нескольких часов и часов экспериментов и поиска в Google я нашел еще один плагин (Cordova saveImageGallery on Github), который на самом деле является улучшением предыдущего, который я использовал. Вот мой код для тех, кто в ней нуждается, хотя вы можете получить больше от страницы плагина

var params = {data: base64ImageString, prefix: 'img_', format: 'JPG', quality: 80, mediaScanner: true}; 
window.imageSaver.saveBase64Image(params, 

    function (filePath) { 
     //console.log('File saved on ' + filePath) = file:///storage/emulated/0/Pictures/img_imageFile.png 
     var sourceDirectory = filePath.substring(0, filePath.lastIndexOf('/') + 1); 
     var sourceFileName = filePath.substring(filePath.lastIndexOf('/') + 1, filePath.length); 

     $cordovaFile.copyFile(sourceDirectory, sourceFileName, cordova.file.dataDirectory).then(function (success) { 
      alert("Request Successfully Completed"); 
     }, function (error) { 
     console.dir(error); 
     alert("Error: " + error); 
     }); 
    }, 
    function (msg) { 
     console.error(msg); 
    } 
); 

Не забудьте установить плагин первым. Спасибо всем, кто пробовал посмотреть на это :)

Смежные вопросы