ServiceWorkerGlobalScope.onnotificationclick
property is an event handler called whenever the
notificationclick
event is dispatched on the
ServiceWorkerGlobalScope
object, that is when a user clicks on a displayed notification spawned by
ServiceWorkerRegistration.showNotification()
.
Notifications created on the main thread or in workers which aren't service workers using the
Notification()
constructor will instead receive a
click
event on the
Notification
对象自身。
注意
: Trying to create a notification inside the
ServiceWorkerGlobalScope
使用
Notification()
constructor will throw an error.
ServiceWorkerGlobalScope.onnotificationclick = function(NotificationEvent) { ... };
self.onnotificationclick = function(event) {
console.log('On notification click: ', event.notification.tag);
event.notification.close();
// This looks to see if the current is already open and
// focuses if it is
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)
return client.focus();
}
if (clients.openWindow)
return clients.openWindow('/');
}));
};
| 规范 | 状态 | 注释 |
|---|---|---|
|
Notifications API
The definition of 'onnotificationclick' in that specification. |
实时标准 |
Initial definition. This property is specified on the
Notifications_API
even though it's part of
ServiceWorkerGlobalScope
.
|
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
onnotificationclick
|
Chrome 40 | Edge ≤79 |
Firefox
44
注意事项
|
IE 不支持 No | Opera 24 | Safari 11.1 | WebView Android 40 | Chrome Android 40 | Firefox Android 44 | Opera Android 24 | Safari iOS 11.3 | Samsung Internet Android 4.0 |
完整支持
不支持
实验。期望将来行为有所改变。
见实现注意事项。
ServiceWorkerGlobalScope
caches
clients
onactivate
onfetch
oninstall
onmessage
onnotificationclick
onnotificationclose
onpush
onpushsubscriptionchange
registration