From b12a8e2caafddd0a1ff2316e2da678e7ed1cafba Mon Sep 17 00:00:00 2001 From: rene Date: Fri, 22 May 2026 09:02:54 +0200 Subject: [PATCH] PWA: iOS Installations-Banner + Safe-Area-Fixes --- app/src/app.html | 2 +- app/src/routes/(app)/+layout.svelte | 62 +++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/app/src/app.html b/app/src/app.html index 242c835..7842f62 100644 --- a/app/src/app.html +++ b/app/src/app.html @@ -7,7 +7,7 @@ - + %sveltekit.head% diff --git a/app/src/routes/(app)/+layout.svelte b/app/src/routes/(app)/+layout.svelte index 06303db..d6eec7c 100644 --- a/app/src/routes/(app)/+layout.svelte +++ b/app/src/routes/(app)/+layout.svelte @@ -8,10 +8,19 @@ let { children } = $props(); + let zeigInstallBanner = $state(false); + onMount(() => { if (!$user) { goto('/login'); return; } if (!$user.verein_id) { goto('/onboarding'); return; } registerPush(); + + // iOS Safari: Banner anzeigen wenn App noch nicht installiert + const isIos = /iphone|ipad|ipod/i.test(navigator.userAgent); + const isStandalone = window.matchMedia('(display-mode: standalone)').matches + || (navigator as any).standalone === true; + const dismissed = sessionStorage.getItem('install-banner-dismissed'); + if (isIos && !isStandalone && !dismissed) zeigInstallBanner = true; }); async function registerPush() { @@ -88,6 +97,16 @@ +{#if zeigInstallBanner} +
+
+ Zum Homescreen hinzufügen + Tippe auf TeilenZum Home-Bildschirm für die Vollbild-App +
+ +
+{/if} +