-
Notifications
You must be signed in to change notification settings - Fork 0
/
subscribe.js
42 lines (36 loc) · 1.06 KB
/
subscribe.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'use strict';
const subscribeButtonEl = document.getElementById('subscribe');
if(!enableSub){
subscribeButtonEl.style.display = 'none';
}
if(enableSub && subscribeButtonEl){
let isSubscribed = false;
subscribeButtonEl.addEventListener('click', function() {
if (isSubscribed) {
unsubscribe();
} else {
subscribe();
}
});
function subscribe() {
reg.pushManager.subscribe({userVisibleOnly: true}).
then(function(pushSubscription) {
sub = pushSubscription;
let endpointParts = sub.endpoint.split('/')
let registrationId = endpointParts[endpointParts.length - 1]
console.log('Subscribed! registrationId:', registrationId);
subscribeButtonEl.textContent = 'Unsubscribe';
isSubscribed = true;
});
}
function unsubscribe() {
sub.unsubscribe().then(function(event) {
subscribeButtonEl.textContent = 'Subscribe';
console.log('Unsubscribed!', event);
isSubscribed = false;
}).catch(function(error) {
console.log('Error unsubscribing', error);
subscribeButtonEl.textContent = 'Subscribe';
});
}
}