Как я могу кэшировать файлы изображений локально с помощью PhoneGap/Cordova?
Здесь моя проблема:
Я создаю приложение для Web/Mobile, используя AngularJS и Cordova. Для автономной работы я использую localStorage для хранения всех данных приложения (JSON, параметры и т.д.).
Дело в том, что мне нужно хранить/кэшировать изображения локально (опять же, в автономном режиме). Поскольку ограничение размера localStorage составляет около 5 минут, я не могу его использовать, мне нужно больше.
Я думал, что могу использовать манифест кэша, но он не работает, так как мне нужно регулярно его обновлять, без повторной компиляции приложения (я думал, что могу разместить манифест кэша на внешнем сервере, но, как я могу 'использовать манифест кэша из другого домена).
Итак, я думаю об использовании API файлов Cordova/Phonegap, но Я не знаю, как это сделать...
Любая помощь или идеи?
Ответы
Ответ 1
После долгих часов поиска на SO и Github я нашел imgCache.js, библиотеку JS, которая обрабатывает кеш файлов для Chrome, Android и iOs (через Кордову).
https://github.com/chrisben/imgcache.js/
Тогда, в основном:
var target = $('.cached-img');
ImgCache.isCached(target.attr('src'), function(path, success){
if(success){
// already cached
ImgCache.useCachedFile(target);
} else {
// not there, need to cache the image
ImgCache.cacheFile(target.attr('src'), function(){
ImgCache.useCachedFile(target);
});
}
});
Ответ 2
Использовать файловую систему HTML5 через плагин Cordova File. Документация файла Cordova должна содержать файл FileEntry- > File. Затем этот файл можно использовать с помощью методов HTML 5 FileSystem. https://github.com/apache/cordova-plugin-file