2017-06-26 2 views

Antwort

0

Was können Sie tun, ist eine Liste der Fenster Kunden erhalten, die eine Liste der Registerkarten für Ihren Ursprung zurückkehren und dann eine Nachricht an jedem Fenster Client senden. (Dieser Code wird im setBackgroundMessageHandler() sein):

const promiseChain = clients.matchAll({ 
    type: 'window', 
    includeUncontrolled: true 
    }) 
    .then((windowClients) => { 
    for (let i = 0; i < windowClients.length; i++) { 
     const windowClient = windowClients[i]; 
     windowClient.postMessage(data); 
    } 
    }) 
    .then(() => { 
    return registration.showNotification('my notification title'); 
    }); 
    return promiseChain; 

Dann die Nachricht in der Seite zu erhalten, fügen Sie einen Hörer in etwa so:

navigator.serviceWorker.addEventListener('message', function(event) { 
    console.log('Received a message from service worker: ', event.data); 
    }); 
Verwandte Themen