我正在尝试启用网络推送通知,但在致电reg.pushManager.subscribe
后,承诺未得到保留。
async enablePushNotification() { // CALLED ON USER CLICK
try {
const status = await Notification.requestPermission();
if (status === 'granted') {
const reg = await navigator.serviceWorker.ready;
this.updateSubscriptionOnServer(reg);
}
} catch (error) {
console.log('Error enabling push notification', error);
}
}
async updateSubscriptionOnServer(reg) {
try {
const newSubscription = await reg.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: urlB64ToUint8Array(VAPID_PUBLIC),
});
// BELLOW IS NEVER CALLED
console.log('Subscription', newSubscription);
const hasSubscription = !(newSubscription === null);
this.setState(setHasSubscribed(hasSubscription));
subscribeToPushNotification(newSubscription); // CALL API
} catch (e) {
console.error('Ops', e);
}
}
我做错了什么?