1
0
Fork 0
mirror of https://github.com/binwiederhier/ntfy.git synced 2025-06-11 23:29:06 +02:00

Add PWA, service worker and Web Push

- Use new notification request/opt-in flow for push
- Implement unsubscribing
- Implement muting
- Implement emojis in title
- Add iOS specific PWA warning
- Don’t use websockets when web push is enabled
- Fix duplicate notifications
- Implement default web push setting
- Implement changing subscription type
- Implement web push subscription refresh
- Implement web push notification click
This commit is contained in:
nimbleghost 2023-05-24 21:36:01 +02:00
parent 733ef4664b
commit ff5c854192
53 changed files with 4363 additions and 249 deletions
server

View file

@ -7,6 +7,7 @@ import (
"net/netip"
"time"
"github.com/SherClockHolmes/webpush-go"
"heckel.io/ntfy/util"
)
@ -401,6 +402,10 @@ type apiConfigResponse struct {
DisallowedTopics []string `json:"disallowed_topics"`
}
type apiWebPushConfigResponse struct {
PublicKey string `json:"public_key"`
}
type apiAccountBillingPrices struct {
Month int64 `json:"month"`
Year int64 `json:"year"`
@ -462,3 +467,22 @@ type apiStripeSubscriptionDeletedEvent struct {
ID string `json:"id"`
Customer string `json:"customer"`
}
type webPushPayload struct {
SubscriptionID string `json:"subscription_id"`
Message message `json:"message"`
FormattedTitle string `json:"formatted_title"`
}
type webPushSubscription struct {
BrowserSubscription webpush.Subscription
Username string
}
type webPushSubscribePayload struct {
BrowserSubscription webpush.Subscription `json:"browser_subscription"`
}
type webPushUnsubscribePayload struct {
Endpoint string `json:"endpoint"`
}