ServiceWorkerRegistration: showNotification() method
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers .
Note: This feature is available in Web Workers .
The
showNotification()
method of the
ServiceWorkerRegistration
interface creates a notification on an active
service worker.
Syntax
showNotification(title)
showNotification(title, options)
Parameters
-
title
-
options
Optional -
actions
Optional ExperimentalAn array of actions to display in the notification, for which the default is an empty array. Each element in the array can be an object with the following members:
-
action
-
title
-
icon
Optional -
badge
Optional ExperimentalA string containing the URL of the image used to represent the notification when there isn't enough space to display the notification itself; for example, the Android Notification Bar. On Android devices, the badge should accommodate devices up to 4x resolution, about 96x96px, and the image will be automatically masked.
-
body
Optional -
data
Optional ExperimentalArbitrary data that you want associated with the notification. This can be of any structured-clonable data type. The default is
null
. -
dir
Optional -
icon
Optional -
image
Optional ExperimentalA string containing the URL of an image to be displayed in the notification.
-
lang
Optional -
renotify
Optional ExperimentalA boolean value specifying whether the user should be notified after a new notification replaces an old one. The default is
false
, which means they won't be notified. Iftrue
, thentag
also must be set. -
requireInteraction
Optional ExperimentalIndicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically. The default value is
false
. -
silent
Optional -
tag
Optional -
timestamp
Optional -
vibrate
Optional ExperimentalA vibration pattern for the device's vibration hardware to emit with the notification. If specified,
silent
must not betrue
.
Defines a title for the notification, which is shown at the top of the notification window.
An options object containing any custom settings that you want to apply to the notification. The possible options are:
A string identifying a user action to be displayed on the notification.
A string containing action text to be shown to the user.
A string containing the URL of an icon to display with the action.
Appropriate responses are built using
event.action
within the
notificationclick
event.
A string representing the body text of the notification, which is displayed below the title. The default is the empty string.
The direction in which to display the notification. It defaults to
auto
, which just adopts the browser's language setting behavior, but you can override that behavior by setting values of
ltr
and
rtl
(although most browsers seem to ignore these settings.)
A string containing the URL of an icon to be displayed in the notification.
The notification's language, as specified using a string representing a language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47) . See the Sitepoint ISO 2 letter language codes page for a simple reference. The default is the empty string.
A boolean value specifying whether the notification is silent (no sounds or vibrations issued), regardless of the device settings. The default,
null
, means to respect device defaults. If
true
, then
vibrate
must not be present.
A string representing an identifying tag for the notification. The default is the empty string.
A timestamp, given as Unix time in milliseconds, representing the time associated with the notification. This could be in the past when a notification is used for a message that couldn't immediately be delivered because the device was offline, or in the future for a meeting that is about to start.
Return value
A
Promise
that resolves to
undefined
.
Exceptions
-
TypeError
Thrown if:
activating
or
activated
.
silent
option is
true
and the
vibrate
option is specified.
renotify
option is
true
but the
tag
option is empty.
DataCloneError
DOMException
Thrown if serializing the
data
option failed for some reason.
Examples
navigator.serviceWorker.register("sw.js");
function showNotification() {
Notification.requestPermission().then((result) => {
if (result === "granted") {
navigator.serviceWorker.ready.then((registration) => {
registration.showNotification("Vibration Sample", {
body: "Buzz! Buzz!",
icon: "../images/touch/chrome-touch-icon-192x192.png",
vibrate: [200, 100, 200, 100, 200, 100, 200],
tag: "vibration-sample",