Событие уведомления не работает из окна уведомлений Windows - PullRequest
0 голосов
/ 24 декабря 2018

Привет потрясающему сообществу.Это мой первый запрос, пожалуйста, помогите.

Я успешно использовал уведомления FCM для моего приложения angular 6.И все прекрасно работает, даже перенаправление на определенную домашнюю страницу.Но когда я закрываю уведомление, а затем нажимаю на уведомление, чтобы вызвать его из панели уведомлений Windows, событие уведомления не работает.Принимая во внимание, что это работает, когда уведомление активно.Ниже скриншоты дадут ясное представление.

Рабочий один введите описание изображения здесь

Не рабочий один введите описание изображения здесь

Мой код

self.addEventListener('notificationclick', function (event) {
  console.log('On notification click: ', event.notification);
  // event.notification.close();
  var redirectUrl = null;

  console.log('event not data', event.notification.data);

  console.log('FCM_MSG', event.notification.data.FCM_MSG);

  var order_data = event.notification.data.FCM_MSG.data;
  console.log('order data', order_data);

  var business_id = order_data.business_id;
  console.log('b id', business_id);

  if (event.notification.data) {
    if (event.notification.data.FCM_MSG) { //seems that background notification shown by system sends data this way
       redirectUrl = event.notification.data.FCM_MSG.data ? event.notification.data.FCM_MSG.data.click_action : null 
      console.log('redirect url in if', redirectUrl);
    } else { //show manually using showNotification
      redirectUrl = event.notification.data ? event.notification.data.click_action : null
      console.log('redirect url in else', redirectUrl);
    }
  }
  if (redirectUrl) {
    // This looks to see if the current is already open and
    // focuses if it is
    event.waitUntil(clients.matchAll({
      type: "window"
    }).then(function (clientList) {
      for (var i = 0; i < clientList.length; i++) {
        var client = clientList[i];
        if (client.url == redirectUrl && 'focus' in client)
          return client.focus();
      }
      if (clients.openWindow) {
        const res = clients.openWindow(redirectUrl);
        return res;
      }
    }));
  }
});

// fired
self.addEventListener("notificationclose", function (event) {
  console.log('notification close');
  // log send to server
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...