1. ホーム
  2. javascript

[解決済み] PhoneGap / Cordovaで画像ファイルをローカルにキャッシュするにはどうすればよいですか?

2022-02-01 22:49:45

質問

以下は私の問題です。

AngularJSとCordovaを使って、Web/Mobileアプリを作っています。オフラインのために、私はアプリのすべてのデータ(JSON、パラメータなど)を格納するためにlocalStorageを使用しています。

それは...: 私は画像をローカルに保存/キャッシュする必要があります(再び、オフラインの目的)。 localStorageのサイズ制限が5mo程度なので、使えない、もっと必要。 .

キャッシュマニフェストを使えばいいと思ったのですが、アプリを再コンパイルせずに定期的に更新する必要があるのでうまくいきません(キャッシュマニフェストを外部サーバーに置けばいいと思ったのですが、別ドメインのキャッシュマニフェストは使えないみたいです)。

そこで、Cordova/PhonegapのFile 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);
            });
          }
        });