Клиенты
Базовая версия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.
Примечание: Эта функция доступна только в работе с сервисами.
Интерфейс Clients предоставляет доступ к объектам Client. Доступ к нему осуществляется через в рамках службы.self.clients
Методы экземпляров
Clients.get()-
Возвращает
PromiseдляClient, соответствующего заданномуid. Clients.matchAll()-
Возвращает
Promiseдля массива объектовClient. Аргумент options позволяет управлять типами возвращаемых клиентов. Clients.openWindow()-
Открывает новое окно браузера для заданного URL и возвращает
Promiseдля новогоWindowClient. Clients.claim()-
Позволяет активному сервисному рабочему задать себя как
controllerдля всех клиентов в рамках егоscope.
Примеры
Следующий пример показывает существующее окно чата или создаёт новое, когда пользователь нажимает на уведомление.
addEventListener("notificationclick", (event) => {
event.waitUntil(
(async () => {
const allClients = await clients.matchAll({
includeUncontrolled: true,
});
let chatClient;
// Let's see if we already have a chat window open:
for (const client of allClients) {
const url = new URL(client.url);
if (url.pathname === "/chat/") {
// Excellent, let's use it!
client.focus();
chatClient = client;
break;
}
}
// If we didn't find an existing chat window,
// open a new one:
if (!chatClient) {
chatClient = await clients.openWindow("/chat/");
}
// Message the client:
chatClient.postMessage("New chat messages!");
})(),
);
});
Спецификации
| Спецификация |
|---|
| Сервисные рабочие # clients-interface |
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Clients |
40 | 17 | 44 | 27 | 11.1 | 40 | 44 | 27 | 11.3 | 4.0 | 40 |
claim |
42 | 17 | 44 | 29 | 11.1 | 42 | 44 | 29 | 11.3 | 4.0 | 42 |
get |
51 | 17 | 45 | 38 | 11.1 | 51 | 45 | 41 | 11.3 | 5.0 | 51 |
matchAll |
42Client объекты возвращаются в порядке последнего фокуса. |
17Client объекты возвращаются в порядке последнего фокуса. |
5444–54До Firefox 54,Client объекты не возвращались в порядке последнего фокуса, как требуется спецификацией. |
29 | 11.1 | 42Client объекты возвращаются в порядке последнего фокуса. |
5444–54До Firefox для Android 54,Client объекты не возвращались в порядке последнего фокуса, как требуется спецификацией. |
29 | 11.3 | 4.0Client объекты возвращаются в порядке последнего фокуса. |
42Client объекты возвращаются в порядке последнего фокуса. |
openWindow |
40["До Chrome 43, этот метод мог открывать только URL в том же домене.", "С Chrome 51, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."] |
17 | 44 | 38 | 11.1 | 40["До Chrome Android 43, этот метод мог открывать только URL в том же домене.", "С Chrome Android 51, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."] |
44 | 41 | 11.3 | 4.0["До Samsung Internet 4.0, этот метод мог открывать только URL в том же домене.", "С Samsung Internet 5.0, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."] |
40["До WebView Android 43, этот метод мог открывать только URL в том же домене.", "С WebView Android 51, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."] |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Clients