Кордова – загрузить изображение с URL-адреса в галерею изображенийAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Кордова – загрузить изображение с URL-адреса в галерею изображений

Сообщение Anonymous »

Я создал простое приложение Cordova для Android и пытаюсь загрузить изображение по URL-адресу в галерею изображений, но я действительно не могу понять, что происходит не так.
Я уже много искал здесь в stackoverflow, включая следующие ссылки:

Phonegap – сохранение изображения по URL-адресу в фотогалерею устройства.

Как это сделать сохранить объект изображения в файл в Android с помощью Phonegap?

Я установил плагин Cordova File Transfer и попытался выполнить пример с официального сайта, но это не помогло тоже работает: https://cordova.apache.org/docs/en/late ... -transfer/

Я попробовал 2 разных кода, а именно:

1) Первая попытка:

Код: Выделить всё

document.getElementById("myBtn").addEventListener("click", function () {
download("http://cordova.apache.org/static/img/cordova_bot.png", "data", "new_file");
});

function download(URL, Folder_Name, File_Name) {
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.toURL();
fp = fp + "/" + Folder_Name + "/" + File_Name + "." + ext;  // fullpath and name of the file which we want to give
filetransfer(download_link, fp);
}

function onDirectorySuccess(parent) {
// Directory created successfuly
}

function onDirectoryFail(error) {
alert("Unable to create new directory: " + error.code);
}

function fileSystemFail(evt) {
//Unable to access file system
alert(evt.target.error.code);
}
}

function filetransfer(download_link, fp) {
var fileTransfer = new FileTransfer();
fileTransfer.download(download_link, fp,
function (entry) {
alert("download complete: " + entry.fullPath);
//cordova.plugins.imagesaver.saveImageToGallery(entry.fullPath, successCallback, errorCallback);
},
function (error) {
alert("download error source " + error.source);
}
);
}
При этой попытке я получаю предупреждающее сообщение «загрузка завершена: /my_folder/new_file.png», но не могу найти, где изображение загружено.
Его определенно нет ни в галерее изображений, ни где-либо еще, где я могу его найти.

2) Вторая попытка:

Код: Выделить всё

function download() {
window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, function (fs) {

var url = 'http://cordova.apache.org/static/img/cordova_bot.png';
fs.root.getFile('downloaded-image.png', {
create: true,
exclusive: false
}, function (fileEntry) {
file_transfer(fileEntry, encodeURI(url), true);

}, onErrorCreateFile);

}, onErrorLoadFs);
}

function onErrorLoadFs(msg){
alert(msg);
}

function onErrorCreateFile(msg){
alert(msg);
}

function file_transfer(fileEntry, uri, readBinaryData) {

var fileTransfer = new FileTransfer();
var fileURL = fileEntry.toURL();

fileTransfer.download(
uri,
fileURL,
function (entry) {
alert("download complete: " + entry.toURL());

if (readBinaryData) {
// Read the file...
readBinaryFile(entry);
} else {
// Or just display it.
displayImageByFileURL(entry);
}

},
function (error) {
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("upload error code" + error.code);
},
null, // or, pass false
{
//headers: {
//    "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
//}
}
);
}
При этой попытке я получаю предупреждающее сообщение «загрузка завершена: file:///data/user/0/com.companyname.xxxxxxx/cache/ downloaded-image.png", но тоже не могу найти картинку нигде на устройстве.

Я уже пробовал приложение на двух разных андроидах устройства.

Подробнее здесь: https://stackoverflow.com/questions/423 ... es-gallery
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»