WindowClient
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since апÑÐµÐ»Ñ 2018 г..
* Some parts of this feature may have varying levels of support.
ÐнÑеÑÑÐµÐ¹Ñ WindowClient ServiceWorker API пÑедÑÑавлÑÐµÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñа ÑеÑвиÑ-воÑкеÑа, коÑоÑÑй пÑедÑÑавлÑÐµÑ Ñобой докÑÐ¼ÐµÐ½Ñ Ð² конÑекÑÑе пÑоÑмоÑÑа, ÑпÑавлÑемÑй акÑивнÑм иÑполниÑелем. ÐÐ»Ð¸ÐµÐ½Ñ ÑеÑвиÑ-воÑкеÑа ÑамоÑÑоÑÑелÑно вÑбиÑÐ°ÐµÑ Ð¸ иÑполÑзÑÐµÑ ÑеÑвиÑ-воÑкеÑа Ð´Ð»Ñ ÑобÑÑвенной загÑÑзки и загÑÑзки подÑеÑÑÑÑов.
ÐеÑодÑ
WindowClient наÑледÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð¾Ñ Ñвоего ÑодиÑелÑÑкого инÑеÑÑейÑа Client.
WindowClient.focus()-
ФокÑÑиÑÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ð° ÑекÑÑем окне.
-
ÐагÑÑÐ¶Ð°ÐµÑ ÑказаннÑй URL-адÑÐµÑ Ð½Ð° ÑпÑавлÑемÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑкÑÑ ÑÑÑаниÑÑ.
СвойÑÑва
WindowClient наÑледÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð¾Ñ Ñвоего ÑодиÑелÑÑкого инÑеÑÑейÑа Client.
WindowClient.focusedТолÑко Ð´Ð»Ñ ÑÑениÑ-
ÐогиÑеÑкое знаÑение, ÑказÑваÑÑее, Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð»Ð¸ ÑекÑÑÐ°Ñ ÑÑÑаниÑа в ÑокÑÑе.
WindowClient.visibilityStateТолÑко Ð´Ð»Ñ ÑÑениÑ-
УказÑваеÑ, оÑобÑажаеÑÑÑ Ð»Ð¸ ÑекÑÑÐ°Ñ ÑÑÑаниÑа. ÐÑо знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из
"hidden" (ÑкÑÑÑа),"visible" (оÑобÑажена)или"prerender" (пÑедваÑиÑелÑно оÑÑиÑована).
ÐÑимеÑ
self.addEventListener("notificationclick", function (event) {
console.log("On notification click: ", event.notification.tag);
event.notification.close();
// ÐÑовеÑÑем, оÑкÑÑÑо ли окно и
// ÑÑокÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð»Ð¸ на нем
event.waitUntil(
clients
.matchAll({
type: "window",
})
.then(function (clientList) {
for (var i = 0; i < clientList.length; i++) {
var client = clientList[i];
if (client.url == "/" && "focus" in client) {
client.focus();
break;
}
}
if (clients.openWindow) return clients.openWindow("/");
}),
);
});
СпеÑиÑикаÑии
| Specification |
|---|
| Service Workers Nightly > # windowclient > |