如何使用PhoneGap / Cordova本地缓存图像文件?

How can I cache image files locally with PhoneGap / Cordova?

本文关键字:缓存 图像 文件 何使用 PhoneGap Cordova      更新时间:2023-09-26

我的问题是:

我正在制作一个Web/Mobile应用,使用AngularJS和Cordova。对于离线目的,我使用localStorage来存储应用程序的所有数据(JSON,参数等)。

问题是:我需要在本地存储/缓存图像(再次,离线目的)。由于localStorage大小限制在5mo左右,我无法使用它,我需要更多的

我以为我可以使用缓存清单,但它不起作用,因为我需要定期更新它,而不需要重新编译应用程序(我以为我可以把缓存清单放在外部服务器上,但就像我不能使用来自另一个域的缓存清单)。

所以我正在考虑使用Cordova/Phonegap文件API,但是我不知道如何实现

在SO和Github上长时间搜索后,我发现了imgCache.js,一个处理Chrome, Android和iOs(通过Cordova)的文件缓存的JS库。

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

通过Cordova File插件使用HTML5文件系统。在Cordova文件文档中应该可以找到FileEntry->File。然后,该文件应该可以通过HTML 5文件系统方法使用。https://github.com/apache/cordova-plugin-file