reg.pushManager.subscribe永远不会实现

时间:2017-10-08 17:16:59

标签: javascript push-notification progressive-web-apps web-push web-notifications

我正在尝试启用网络推送通知,但在致电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);
  }
}

我做错了什么?

0 个答案:

没有答案