Notification: Notification() constructor
========================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

 The **`Notification()`** constructor creates a new
 `Notification` object instance, which represents a user notification.

**Note:** This feature is available in Web Workers

Syntax
------


```js
new Notification(title)
new Notification(title, options)
```

### Parameters

`title`

 Defines a title for the notification, which is shown at the top of the notification
 window.


`options` Optional

 An options object containing any custom settings that you want to apply to the
 notification. The possible options are:


`dir` Optional

 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.)


`lang` Optional

 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.


`badge` Optional

 A string containing the URL of the image
 used to represent the notification when there isn't enough space to display the
 notification itself.


`body` Optional

 A string representing the body text of the
 notification, which is displayed below the title.
 The default is the empty string.


`tag` Optional

 A string representing an identifying tag for
 the notification. The default is the empty string.


`icon` Optional

 A string containing the URL of an icon to
 be displayed in the notification.


`image` Optional

 a string containing the URL of an image to
 be displayed in the notification.


`data` Optional

 Arbitrary data that you want associated with the
 notification. This can be of any data type.
 The default is `null`.


`vibrate` Optional

A vibration pattern for the device's vibration hardware to emit with the notification. If specified, `silent` must not be `true`.

`timestamp` Optional

A number representing the time at which a notification is created or applicable (past, present, or future).

`renotify` Optional

A 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. If `true`, then `tag` also must be set.

`requireInteraction` Optional

 Indicates that a notification should remain
 active until the user clicks or dismisses it, rather than closing automatically.
 The default value is `false`.


`actions` Optional

An 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`

A string identifying a user action to be displayed on the notification.

`title`

A string containing action text to be shown to the user.

`icon` Optional

A string containing the URL of an icon to display with the action.


 Appropriate responses are built using `event.action` within the
 `notificationclick` event.


`silent` Optional

 A boolean value specifying whether the
 notification is silent (no sounds or vibrations issued), regardless of the device
 settings. The default is `null`. If `true`, then `vibrate` must not be present.



### Return value

An instance of the `Notification` object.

### Exceptions

`TypeError`

Thrown if:

* The constructor is called within the `ServiceWorkerGlobalScope`.
* The `actions` option is specified and is not empty.
* The `silent` option is `true` and the `vibrate` option is specified.
* The `renotify` option is `true` but the `tag` option is empty.

`DataCloneError` `DOMException`

Thrown if serializing the `data` option failed for some reason.

Examples
--------

 In our
 `Emogotchi demo`
 (see source code), we run a
 `spawnNotification()` function when we want to trigger a notification. The
 function is passed parameters to specify the body, icon, and title we want, and then it
 creates the necessary `options` object and triggers the notification by using
 the `Notification()` constructor.


```js
function spawnNotification(body, icon, title) {
  const notification = new Notification(title, { body, icon });
}
```

Specifications
--------------

| Specification |
| --- |
| Notifications API Standard # dom-notification-notification |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### Chrome notes

Starting in Chrome 49, notifications don't work in incognito mode.

 Chrome for Android will throw a `TypeError` when calling the
 `Notification` constructor. It only supports creating
 notifications from a service worker. See the
 Chromium issue tracker for more details.

See also
--------

* Using the Notifications API