- Add VitePWA plugin to vite.config.ts with registerType:autoUpdate - navigateFallbackDenylist excludes /callback, /api/, /health (T-03-20 Gate 2) - runtimeCaching: [] — no API response caching (T-03-21) - Manifest: name/short_name FamilySync, display:standalone, scope:/, theme_color #4A90D9 - Icons: 192x192, 512x512, 512x512 maskable in manifest - Generate icon-192.png (192x192), icon-512.png (512x512), apple-touch-icon.png (180x180) - Add five iOS head entries: apple-touch-icon link, apple-mobile-web-app-capable/status-bar-style/title - Build verified: dist/manifest.webmanifest emitted with correct fields; SW + workbox emitted
18 lines
635 B
HTML
18 lines
635 B
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="theme-color" content="#4A90D9" />
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
|
<meta name="apple-mobile-web-app-title" content="FamilySync" />
|
|
<title>FamilySync</title>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|