Dans cet article, nous explorerons les Progressive Web Apps (PWA), une approche moderne de la création d'applications Web offrant une expérience native de type application. Je couvrirai les bases des PWA, leurs avantages et les étapes pour créer une PWA à partir de zéro.
Qu'est-ce qu'une Progressive Web App (PWA) ?
Une application Web progressive est un type de logiciel d'application fourni via le Web, construit à l'aide de technologies Web courantes, notamment HTML, CSS et JavaScript. Les PWA sont destinées à fonctionner sur n'importe quelle plateforme utilisant un navigateur conforme aux normes.
Principales fonctionnalités des PWA :
Pourquoi créer une PWA ?
Prérequis :
Créer une PWA simple :
Configuration du projet :
mkdir my-pwa cd my-pwa npm init -y npm install express
Structure du projet :
my-pwa/ ├── public/ │ ├── index.html │ ├── styles.css │ └── app.js ├── server.js ├── package.json └── manifest.json
manifest.json :
Le fichier manifeste fournit des métadonnées sur la PWA et est requis pour l'installation de l'application sur l'écran d'accueil.
// 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 :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>My PWA</title> <link rel="stylesheet" href="/styles.css"> <link rel="manifest" href="/manifest.json"> </head> <body> <h1>Welcome to My Progressive Web App!</h1> <script src="/app.js"></script> </body> </html>
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); }); }); }
Un service worker est un script que le navigateur exécute en arrière-plan, distinct de la page Web. Il intercepte les requêtes réseau et peut mettre en cache des ressources pour améliorer les performances et les capacités hors ligne.
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); }) ); });
serveur.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}`); });
Exécution du serveur :
node server.js
Ouvrez l'application :
Inscription des agents de service :
Ajouter à l'écran d'accueil :
Bonnes pratiques :
Résumez les points clés abordés :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!