Есть ли в любом случае, чтобы открыть TWA из крана уведомления? (client.focus () не работает для TWA, но работает для вкладки chrome или установленного PWA) - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть PWA с веб-уведомлениями pu sh, которые деформированы в TWA. если TWA открыт в фоновом режиме, то нажатие на уведомление ничего не делает. если я закрываю TWA, то нажатие на уведомление открывает новую вкладку chrome или фокусирует ожидающую вкладку, как и ожидалось.

, вот мой код работника службы

self.addEventListener('notificationclick', function(event) {
  event.notification.close();
  event.waitUntil(
    clients
      .matchAll({
        type: 'window',
        includeUncontrolled: true,
      })
      .then(function(clientList) {
        for (let i = 0; i < clientList.length; i++) {
          const client = clientList[i];
          const isChatAppUrl =
            client.url.includes('.com/messages') ||
            client.url.includes('.co/messages');
          if (isChatAppUrl && 'focus' in client) {
            client.postMessage({
              type: 'NOTIFICATION_CLICK',
              payload: event.notification.data.link,
            });
            return client.focus();
          }
        }
        if (clients.openWindow) {
          return clients.openWindow(event.notification.data.link);
        }
      }),
  );
});

при отладке. проблема с TWA, открытым в фоновом режиме, я заметил, что client.focus() не удается с Not allowed to open a window

...