Correctly handle standalone (PWA) mode changes
- Also handle notification permission changes - Remove web push schedule worker since this complicates things and doesn’t do _that_ much. We have the reminder notification if the user truly doesn’t reload ntfy in more than a week.
This commit is contained in:
parent
532fd3c560
commit
a8d3297c4e
6 changed files with 91 additions and 90 deletions
|
@ -43,7 +43,7 @@ class Notifier {
|
|||
}
|
||||
}
|
||||
|
||||
async webPushSubscription() {
|
||||
async webPushSubscription(hasWebPushTopics) {
|
||||
if (!this.pushPossible()) {
|
||||
throw new Error("Unsupported or denied");
|
||||
}
|
||||
|
@ -53,11 +53,11 @@ class Notifier {
|
|||
return existingSubscription;
|
||||
}
|
||||
|
||||
// Create a new subscription only if Web Push is enabled. It is possible that Web Push
|
||||
// Create a new subscription only if there are new topics to subscribe to. It is possible that Web Push
|
||||
// was previously enabled and then disabled again in which case there would be an existingSubscription.
|
||||
// If, however, it was _not_ enabled previously, we create a new subscription if it is now enabled.
|
||||
|
||||
if (await this.pushEnabled()) {
|
||||
if (hasWebPushTopics) {
|
||||
return pushManager.subscribe({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey: urlB64ToUint8Array(config.web_push_public_key),
|
||||
|
@ -119,11 +119,6 @@ class Notifier {
|
|||
return this.pushSupported() && this.contextSupported() && this.granted() && !this.iosSupportedButInstallRequired();
|
||||
}
|
||||
|
||||
async pushEnabled() {
|
||||
const enabled = await prefs.webPushEnabled();
|
||||
return this.pushPossible() && enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this is a HTTPS site, or served over localhost. Otherwise the Notification API
|
||||
* is not supported, see https://developer.mozilla.org/en-US/docs/Web/API/notification
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue