baustelle-pwa/manifest.webmanifest
Eduard Wisch 5e80d78f41
All checks were successful
Deploy baustelle-pwa / deploy (push) Successful in 1s
fix: Manifest-Installability-Kriterien für Chrome Android
Chrome Android zeigte nur 'Zum Startbildschirm hinzufügen' statt
'App installieren', weil:
1. 'any maskable' als kombinierter purpose reicht Chrome nicht —
   braucht mindestens ein reines 'any'-Icon für den Install-Prompt
2. start_url/scope waren relativ (./) — mit absoluten Pfaden zum
   custom/baustelle/-Root ist der Scope eindeutig

Fixes:
- icons: je 192/512 als 'any' UND zusätzlich als 'maskable' (4 Einträge)
- id, start_url, scope auf '/custom/baustelle/' gesetzt (absolut)
- categories, dir: ltr dazu für vollständiges Manifest

Damit erfüllt die PWA die Chrome-Installability-Kriterien und der
Menü-Eintrag wird zu 'App installieren'. Erst dann funktioniert
auch Web Share Target.

Cache v10.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
[deploy]
2026-04-09 01:21:59 +02:00

35 lines
1.4 KiB
JSON

{
"name": "Baustelle — Bericht-Doku",
"short_name": "Baustelle",
"description": "Mobile Doku für Baustellen — Fotos, Sprachnotizen, Skizzen",
"id": "/custom/baustelle/",
"start_url": "/custom/baustelle/",
"scope": "/custom/baustelle/",
"display": "standalone",
"orientation": "portrait",
"background_color": "#1a1a1f",
"theme_color": "#1a1a1f",
"lang": "de",
"dir": "ltr",
"categories": ["productivity", "business", "utilities"],
"icons": [
{ "src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
{ "src": "icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
{ "src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
{ "src": "icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
],
"share_target": {
"action": "https://awl.data-it-solution.de/custom/baustelle/share.html",
"method": "POST",
"enctype": "multipart/form-data",
"params": {
"title": "title",
"text": "text",
"url": "url",
"files": [
{ "name": "photos", "accept": ["image/jpeg", "image/png", "image/webp", "image/*"] },
{ "name": "file", "accept": ["image/jpeg", "image/png", "image/webp", "image/*"] }
]
}
}
}