2015-08-10 2 views
1

У меня возникла проблема при попытке сохранить изображение из URL-адреса в галерею телефона.Загруженные изображения не сохраняются в телефонной галерее phonegap cordova

savetoImageGallery.js

window.requestFileSystem(window.LocalFileSystem.PERSISTENT, 0, onSuccess, onError); 

function onSuccess(fileSystem) { 

    var directoryEntry = fileSystem.root; 

    var name = imageName.split('/').pop(); 
    var imageUrl = encodeURI(decodeURIComponent(AppSettings.baseApiUrl + imageName)); 

    var fp = fileSystem.root.toURL(); 
    var filepath = fp + name; 
    var ft = new window.FileTransfer(); 
    var f = ft.download(imageUrl, filepath, 
    function (entry) { 
     console.log("download complete: " + entry.toURL()); 
    }, 
    function (error) { 
     console.log("download error target " + error.target); 
    } 
); 
} 

изображение получает правильно загрузить с URL, но оно сохраняется в корне каталога файла, но не показывает в телефонной галерее.

Как решить эту проблему? Я использую кордову.

ответ

1

Следующий ответ применяется только для Android и для последней версии плагина передачи файлов:

У меня была аналогичная проблема с моим приложением, и причина была она сохранить изображение на вложенной in my package folder:

file:///data/data/<package-name>/files/files

(Эта папка не найдена позже в галерее).

Чтобы решить эту проблему, вы должны добавить следующую строку в вашем config.xml:

<preference name="AndroidPersistentFileLocation" value="Compatibility" />

Это связано с некоторыми изменениями, которые они сделали в плагин. Более подробную информацию:

https://github.com/apache/cordova-plugin-file (Под «Android Quirks»)

Теперь, есть еще одна проблема, и это, что галерея нужно прочитать снова SDCard, чтобы иметь возможность отображать изображения, поэтому после загрузки изображения, которое вы нужно найти способ снова прочитать память, а затем вы сможете увидеть свои изображения. Чтобы проверить, если это ваша проблема, после загрузки изображения перезапустите свой телефон, чтобы он снова прочитал файловую систему, а затем проверьте свою галерею.

Чтобы решить эту проблему, вы должны написать свой собственный плагин, или вы можете использовать тот, который уже сделан (не забудьте проверить совместимость ОС), как этот: https://www.npmjs.com/package/cordova-plugin-refresh-gallery

Надеется, что это помогает.

Приветствия!

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