serviceworkers Fokus-Registerkarte: Clients ist leer bei Notificationclick

9

Ich habe einen gemeinsamen serviceworker escenario, wo ich einen Benachrichtigungsklick abfangen und den Tab, wo die Benachrichtigung herkommt, fokussieren soll. Die Variable clients ist jedoch immer leer, ihre Länge ist 0

%Vor%

Und die Registrierung ist diese:

%Vor%

chrome: // serviceworker-internals / output zeigt, dass Registrierung und Installation in Ordnung sind. Wenn eine Benachrichtigung gesendet wird, ist ClientList jedoch leer. Ich habe versucht, den Filtertyp "Fenster" zu entfernen, aber das Ergebnis ist immer noch dasselbe. Da Clients leer sind, wird immer ein neues Fenster geöffnet. Was mache ich falsch?

    
moarra 30.01.2016, 10:39
quelle

2 Antworten

17

Der Verdacht in Ihrem eigenen Kommentar ist richtig. Eine Seite wird von einem Service-Mitarbeiter bei der Navigation zu einem Ursprung gesteuert, für den der Service-Mitarbeiter registriert ist . Die ursprüngliche Seitenladung, die den Service-Mitarbeiter tatsächlich initialisiert, wird nicht selbst gesteuert. Deshalb findet der Mitarbeiter den Tab nur, wenn Sie ihn mit einem neuen Tab aufrufen oder eine Aktualisierung durchführen.

Allerdings (wie Jeff Posnick in den Kommentaren hervorhebt) können Sie unkontrollierte Seiten wie folgt erhalten: ServiceWorkerClients.matchAll({includeUncontrolled: true, type: 'window'}) .

    
Brendan Ritchie 31.01.2016, 00:17
quelle
1

Versuchen Sie, den Servicetechniker dazu zu bringen, die Seite sofort zu beanspruchen. Zum Beispiel:

%Vor%

Ein komplexeres Beispiel finden Sie in Ссылка .

    
Marco 31.01.2016 06:27
quelle

Tags und Links