ユーザ用ツール

サイト用ツール


ハイハイスクールアドベンチャー_web版

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ハイハイスクールアドベンチャー_web版 [2025/10/20 01:57] – [クラスとかラムダ式とか] arakiハイハイスクールアドベンチャー_web版 [2025/10/20 02:00] (現在) – [PWA] araki
行 79: 行 79:
 ウェブページ上に 512x304((要するに倍のサイズ))で canvasを用意して、プログラム中ではネイティブサイズのダミーの canvas に書き込みを行い、倍サイズの表示領域に拡大転送することでこれを実現している。 ウェブページ上に 512x304((要するに倍のサイズ))で canvasを用意して、プログラム中ではネイティブサイズのダミーの canvas に書き込みを行い、倍サイズの表示領域に拡大転送することでこれを実現している。
  
-<code>+<code javascript>
 this.zctx = document.getElementById("HHSAdv").getContext('2d'); this.zctx = document.getElementById("HHSAdv").getContext('2d');
 this.zctx.imageSmoothingEnabled = true; this.zctx.imageSmoothingEnabled = true;
行 249: 行 249:
 if ('serviceWorker' in navigator) if ('serviceWorker' in navigator)
 { {
 +    navigator.serviceWorker.addEventListener('message', (event) => {
 + if (event.data && event.data.type == 'UPDATE_AVAILABLE') {
 +     const shouldReload = confirm('更新が利用可能です。更新しますか?');
 +     if (shouldReload)
 +     {
 + window.location.reload();
 +     }
 + }
 +    });
     navigator.serviceWorker.register('sw.js');     navigator.serviceWorker.register('sw.js');
 } }
行 298: 行 307:
                 })                 })
         );         );
 +});
 +
 +// update
 +self.addEventListener('activate', (event) => {
 +  const cacheWhitelist = []; // 現在有効なキャッシュ名
 +
 +  event.waitUntil(
 +    caches.keys().then((cacheNames) => {
 +      return Promise.all(
 +        cacheNames.map((cacheName) => {
 +          // 現在のバージョンに含まれていない(古い)キャッシュを削除
 +          if (cacheWhitelist.indexOf(cacheName) === -1) {
 +            console.log('古いキャッシュを削除:', cacheName);
 +            return caches.delete(cacheName);
 +          }
 +        })
 +      );
 +    })
 +    // すべてのキャッシュ削除が完了したら、クライアントへの制御を引き継ぐ
 +    .then(() => self.clients.claim())
 +  );
 +  
 +  event.waitUntil(
 +    // すべてのクライアントに更新完了を通知
 +    self.clients.claim().then(() => {
 +      self.clients.matchAll().then((clients) => {
 +        clients.forEach(client => {
 +          client.postMessage({ type: 'UPDATE_AVAILABLE' });
 +        });
 +      });
 +    })
 +  );
 }); });
 </code> </code>
ハイハイスクールアドベンチャー_web版.1760925428.txt.gz · 最終更新: by araki