PWA: installable app (web/win/android/ios) + download/help page + push notifications
- manifest.webmanifest + service worker (offline shell + push + notificationclick) + PNG icons (192/512/apple) + iOS meta + SW registration → installable everywhere - /Download page: per-OS install help (web/windows/android/ios), install button (beforeinstallprompt), 'enable notifications' flow, usage guide, Bazaar/TWA note; nav + footer links - Web Push foundation: WebPushSubscription entity + /push/subscribe (stores), VAPID + push settings in /Admin/Settings, on-device local notification; server broadcast documented (WebPush via Nexus) - docs/PWA-TWA.md: VAPID keygen, server-push wiring, Bubblewrap→Cafe Bazaar + assetlinks steps - Verified: manifest/sw/icons served, download page, subscribe stores (200), layout wired Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -51,6 +51,10 @@ public class SettingsService
|
||||
s.SmsTemplate = incoming.SmsTemplate?.Trim();
|
||||
s.SmsSender = incoming.SmsSender?.Trim();
|
||||
s.NeshanMapKey = incoming.NeshanMapKey?.Trim();
|
||||
s.PushEnabled = incoming.PushEnabled;
|
||||
s.VapidPublicKey = incoming.VapidPublicKey?.Trim();
|
||||
s.VapidPrivateKey = incoming.VapidPrivateKey?.Trim();
|
||||
s.VapidSubject = string.IsNullOrWhiteSpace(incoming.VapidSubject) ? "mailto:admin@hamkadr.ir" : incoming.VapidSubject.Trim();
|
||||
s.UpdatedAt = DateTime.UtcNow;
|
||||
await _db.SaveChangesAsync();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user