2016-03-30 2 views
3

Есть ли способ опубликовать список всех зарегистрированных пользователей сервиса? Допустим, что я зарегистрировал/установил несколько сервисных работников. Могу ли я получить список массива имен файлов через js?Список хромированных зарегистрированных сервисных работников

+0

Насколько я знаю, API не является зарегистрированным зарегистрированным, поскольку веб-работники имеют ограниченный доступ к 'window'' document' и 'parent'. Простым обходным решением было бы сохранить ссылки Работников в объект JS ... –

+0

Это поможет точно узнать, что вы подразумеваете под «всеми браузерами» и «Я» в вашем вопросе. Вы действительно хотите, чтобы все рабочие службы, зарегистрированные на любой странице в любой области? Или вы просто хотите, чтобы все обслуживающие рабочие регистрировались на страницах в заданной области? И «Я» расширение Firefox/Chrome или веб-страницу? –

ответ

8

Видимо я нашел два способа, который работает хорошо для меня (для хрома): один использует ярлык команда:

chrome://serviceworker-internals/ 

Другое одно:

перейти к Developers Tool -> Resources -> Service Workers

7

Невозможно получить «зарегистрированных» сервис-работников браузера программно с веб-страницы, так как веб-страница может получить доступ только к работникам служб, которые зарегистрированы для своей области. Но если вы ищете способ, чтобы получить те, а затем вызвать navigator.serviceWorker.getRegistrations получить обещание, устраняющее в массив зарегистрированных работников службы:

navigator.serviceWorker.getRegistrations().then(function(registrations) { 
    registrations.forEach(function(v) { console.log('service worker: ' + v) }); 
}); 
4

Если вы действительно хотите получить «все в браузере» зарегистрирован рабочие, вы можете сделать это, не программным путем открытия этих адресов:

Firefox

about:serviceworkers 

Chrome

chrome://serviceworker-internals/ 

Opera

browser://serviceworker-internals 

Смотрите также: Is ServiceWorker Ready? для уточненного списка отладки хелперов.


(. По-видимому, есть также способ сделать это программно в расширение Firefox)