在這篇文章中,我們將探索漸進式 Web 應用程式 (PWA),這是一種建立 Web 應用程式的現代方法,可提供類似本機應用程式的體驗。我將介紹 PWA 的基礎知識、它們的優點以及從頭開始建立 PWA 的步驟。
什麼是漸進式 Web 應用程式 (PWA)?
漸進式 Web 應用程式是一種透過 Web 交付的應用程式軟體,使用常見的 Web 技術(包括 HTML、CSS 和 JavaScript)建構。 PWA 旨在在任何使用符合標準的瀏覽器的平台上工作。
PWA 的主要特點:
為什麼要建造 PWA?
先決條件:
建立一個簡單的 PWA:
項目設定:
mkdir my-pwa cd my-pwa npm init -y npm install express
專案結構:
my-pwa/ ├── public/ │ ├── index.html │ ├── styles.css │ └── app.js ├── server.js ├── package.json └── manifest.json
manifest.json:
清單檔案提供有關 PWA 的元數據,並且是在主螢幕上安裝應用程式所必需的。
// manifest.json { "name": "My PWA", "short_name": "PWA", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#007bff", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "icon-512x512.png", "sizes": "512x512", "type": "image/png" } ] }
index.html:
8b05045a5be5764f313ed5b9168a17e6 49099650ebdc5f3125501fa170048923 93f0f5c25f18dab9d176bd4f6de5d30e 1fc2df4564f5324148703df3b6ed50c1 4f2fb0231f24e8aef524fc9bf9b9874f b2386ffb911b14667cb8f0f91ea547a7My PWA6e916e0f7d1e588d4f442bf645aedb2f 810801fb5d57e2948359b7eef57cb689 02ccac29734b382144275b53674934d7 9c3bca370b5104690d9ef395f2c5f8d1 6c04bd5ca3fcae76e30b72ad730ca86d 4a249f0d628e2318394fd9b75b4636b1Welcome to My Progressive Web App!473f0a7621bec819994bb5020d29372a 1e1ccda7e68c35a670bf47149c0f0c612cacc6d41bbb37262a98f745aa00fbf0 36cc49f0c466276486e50c850b7e4956 73a6ac4ed44ffec12cee46588e518a5e
styles.css:
/* styles.css */ body { font-family: Arial, sans-serif; text-align: center; background-color: #f0f0f0; color: #333; }
app.js:
// app.js if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js') .then(registration => { console.log('ServiceWorker registered: ', registration); }) .catch(error => { console.log('ServiceWorker registration failed: ', error); }); }); }
Service Worker 是瀏覽器在背景執行的腳本,與網頁分開。它攔截網路請求並可以快取資源以提高效能和離線能力。
service-worker.js:
// service-worker.js const CACHE_NAME = 'my-pwa-cache-v1'; const urlsToCache = [ '/', '/styles.css', '/app.js', '/manifest.json', '/icon-192x192.png', '/icon-512x512.png' ]; self.addEventListener('install', event => { event.waitUntil( caches.open(CACHE_NAME) .then(cache => { return cache.addAll(urlsToCache); }) ); }); self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request) .then(response => { return response || fetch(event.request); }) ); });
server.js:
const express = require('express'); const path = require('path'); const app = express(); const PORT = process.env.PORT || 3000; app.use(express.static(path.join(__dirname, 'public'))); app.listen(PORT, () => { console.log(`Server is running on http://localhost:${PORT}`); });
運作伺服器:
node server.js
開啟應用程式:
服務人員註冊:
加入主畫面:
最佳實務:
總結所涵蓋的要點:
以上是漸進式 Web 應用程式 (PWA)的詳細內容。更多資訊請關注PHP中文網其他相關文章!