mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-11-04 16:23:41 +08:00 
			
		
		
		
	feat: add PWA support
This commit is contained in:
		@@ -50,6 +50,7 @@ export default function RootLayout({
 | 
			
		||||
          href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;700;900&display=swap"
 | 
			
		||||
          rel="stylesheet"
 | 
			
		||||
        ></link>
 | 
			
		||||
        <script src="/serviceWorker.js"></script>
 | 
			
		||||
      </head>
 | 
			
		||||
      <body>{children}</body>
 | 
			
		||||
    </html>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								public/serviceWorker.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								public/serviceWorker.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
const CHATGPT_NEXT_WEB_CACHE = "chatgpt-next-web-cache";
 | 
			
		||||
 | 
			
		||||
self.addEventListener('activate', function (event) {
 | 
			
		||||
  console.log('ServiceWorker activated.');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
self.addEventListener('install', function (event) {
 | 
			
		||||
  event.waitUntil(
 | 
			
		||||
    caches.open(CHATGPT_NEXT_WEB_CACHE)
 | 
			
		||||
      .then(function (cache) {
 | 
			
		||||
        return cache.addAll([
 | 
			
		||||
          '/',
 | 
			
		||||
        ]);
 | 
			
		||||
      })
 | 
			
		||||
  );
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
self.addEventListener('fetch', function (event) {
 | 
			
		||||
  event.respondWith(
 | 
			
		||||
    caches.match(event.request)
 | 
			
		||||
      .then(function (response) {
 | 
			
		||||
        return response || fetch(event.request);
 | 
			
		||||
      })
 | 
			
		||||
  );
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
if ('serviceWorker' in navigator) {
 | 
			
		||||
  window.addEventListener('load', function () {
 | 
			
		||||
    navigator.serviceWorker.register('/serviceWorker.js').then(function (registration) {
 | 
			
		||||
      console.log('ServiceWorker registration successful with scope: ', registration.scope);
 | 
			
		||||
    }, function (err) {
 | 
			
		||||
      console.error('ServiceWorker registration failed: ', err);
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
@@ -1 +1,21 @@
 | 
			
		||||
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
 | 
			
		||||
{
 | 
			
		||||
    "name": "ChatGPT Next Web",
 | 
			
		||||
    "short_name": "ChatGPT",
 | 
			
		||||
    "icons": [
 | 
			
		||||
      {
 | 
			
		||||
        "src": "/android-chrome-192x192.png",
 | 
			
		||||
        "sizes": "192x192",
 | 
			
		||||
        "type": "image/png"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "src": "/android-chrome-512x512.png",
 | 
			
		||||
        "sizes": "512x512",
 | 
			
		||||
        "type": "image/png"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "start_url": "/",
 | 
			
		||||
    "theme_color": "#ffffff",
 | 
			
		||||
    "background_color": "#ffffff",
 | 
			
		||||
    "display": "standalone"
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
		Reference in New Issue
	
	Block a user