Description
Use the chrome.notifications API to create rich notifications using templates and show these notifications to users in the system tray.
Permissions
notificationsTypes
NotificationBitmap
NotificationButton
Properties
- 
    iconUrlstring optional Deprecated since Chrome 59Button icons not visible for Mac OS X users. 
- 
    titlestring 
NotificationItem
Properties
- 
    messagestring Additional details about this item. 
- 
    titlestring Title of one item of a list notification. 
NotificationOptions
Properties
- 
    appIconMaskUrlstring optional Deprecated since Chrome 59The app icon mask is not visible for Mac OS X users. A URL to the app icon mask. URLs have the same restrictions as iconUrl. The app icon mask should be in alpha channel, as only the alpha channel of the image will be considered. 
- 
    buttonsNotificationButton[] optional Text and icons for up to two notification action buttons. 
- 
    contextMessagestring optional Alternate notification content with a lower-weight font. 
- 
    eventTimenumber optional A timestamp associated with the notification, in milliseconds past the epoch (e.g. Date.now() + n).
- 
    iconUrlstring optional A URL to the sender's avatar, app icon, or a thumbnail for image notifications. URLs can be a data URL, a blob URL, or a URL relative to a resource within this extension's .crx file **Note:**This value is required for the notifications.create()method.
- 
    imageUrlstring optional Deprecated since Chrome 59The image is not visible for Mac OS X users. A URL to the image thumbnail for image-type notifications. URLs have the same restrictions as iconUrl. 
- 
    isClickableboolean optional Deprecated since Chrome 67This UI hint is ignored as of Chrome 67 
- 
    itemsNotificationItem[] optional Items for multi-item notifications. Users on Mac OS X only see the first item. 
- 
    messagestring optional Main notification content. **Note:**This value is required for the notifications.create()method.
- 
    prioritynumber optional Priority ranges from -2 to 2. -2 is lowest priority. 2 is highest. Zero is default. On platforms that don't support a notification center (Windows, Linux & Mac), -2 and -1 result in an error as notifications with those priorities will not be shown at all. 
- 
    progressnumber optional Current progress ranges from 0 to 100. 
- 
    requireInteractionboolean optional Chrome 50+Indicates that the notification should remain visible on screen until the user activates or dismisses the notification. This defaults to false. 
- 
    silentboolean optional Chrome 70+Indicates that no sounds or vibrations should be made when the notification is being shown. This defaults to false. 
- 
    titlestring optional Title of the notification (e.g. sender name for email). **Note:**This value is required for the notifications.create()method.
- 
    typeTemplateType optional Which type of notification to display. Required for notifications.createmethod.
PermissionLevel
Enum
"granted"  "denied" 
 Specifies that the user has elected to show notifications from the app or extension. This is the default at install time.
 Specifies that the user has elected not to show notifications from the app or extension.
TemplateType
Enum
"basic"  "image"  "list"  "progress" 
 Contains an icon, title, message, expandedMessage, and up to two buttons.
 Contains an icon, title, message, expandedMessage, image, and up to two buttons.
 Contains an icon, title, message, items, and up to two buttons. Users on Mac OS X only see the first item.
 Contains an icon, title, message, progress, and up to two buttons.
Methods
clear()
chrome.notifications.clear(
notificationId: string,
callback?: function,
): Promise<boolean>
Clears the specified notification.
Parameters
- 
    notificationIdstring The id of the notification to be cleared. This is returned by notifications.createmethod.
- 
    callbackfunction optional The callbackparameter looks like:(wasCleared: boolean) => void - 
    wasClearedboolean 
 
- 
    
Returns
- 
            Promise<boolean> Chrome 116+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
create()
chrome.notifications.create(
notificationId?: string,
options: NotificationOptions,
callback?: function,
): Promise<string>
Creates and displays a notification.
Parameters
- 
    notificationIdstring optional Identifier of the notification. If not set or empty, an ID will automatically be generated. If it matches an existing notification, this method first clears that notification before proceeding with the create operation. The identifier may not be longer than 500 characters. The notificationIdparameter is required before Chrome 42.
- 
    optionsContents of the notification. 
- 
    callbackfunction optional The callbackparameter looks like:(notificationId: string) => void - 
    notificationIdstring 
 
- 
    
Returns
- 
            Promise<string> Chrome 116+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
getAll()
chrome.notifications.getAll(
callback?: function,
): Promise<object>
Retrieves all the notifications of this app or extension.
Parameters
- 
    callbackfunction optional The callbackparameter looks like:(notifications: object) => void - 
    notificationsobject 
 
- 
    
Returns
- 
            Promise<object> Chrome 116+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
getPermissionLevel()
chrome.notifications.getPermissionLevel(
callback?: function,
): Promise<PermissionLevel>
Retrieves whether the user has enabled notifications from this app or extension.
Parameters
- 
    callbackfunction optional The callbackparameter looks like:(level: PermissionLevel) => void - 
    level
 
- 
    
Returns
- 
            Promise<PermissionLevel> Chrome 116+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
update()
chrome.notifications.update(
notificationId: string,
options: NotificationOptions,
callback?: function,
): Promise<boolean>
Updates an existing notification.
Parameters
- 
    notificationIdstring The id of the notification to be updated. This is returned by notifications.createmethod.
- 
    optionsContents of the notification to update to. 
- 
    callbackfunction optional The callbackparameter looks like:(wasUpdated: boolean) => void - 
    wasUpdatedboolean 
 
- 
    
Returns
- 
            Promise<boolean> Chrome 116+Promises are only supported for Manifest V3 and later, other platforms need to use callbacks. 
Events
onButtonClicked
chrome.notifications.onButtonClicked.addListener(
callback: function,
)
The user pressed a button in the notification.
Parameters
- 
    callbackfunction The callbackparameter looks like:(notificationId: string, buttonIndex: number) => void - 
    notificationIdstring 
- 
    buttonIndexnumber 
 
- 
    
onClicked
chrome.notifications.onClicked.addListener(
callback: function,
)
The user clicked in a non-button area of the notification.
Parameters
- 
    callbackfunction The callbackparameter looks like:(notificationId: string) => void - 
    notificationIdstring 
 
- 
    
onClosed
chrome.notifications.onClosed.addListener(
callback: function,
)
The notification closed, either by the system or by user action.
Parameters
- 
    callbackfunction The callbackparameter looks like:(notificationId: string, byUser: boolean) => void - 
    notificationIdstring 
- 
    byUserboolean 
 
- 
    
onPermissionLevelChanged
chrome.notifications.onPermissionLevelChanged.addListener(
callback: function,
)
The user changes the permission level. As of Chrome 47, only ChromeOS has UI that dispatches this event.
Parameters
- 
    callbackfunction The callbackparameter looks like:(level: PermissionLevel) => void - 
    level
 
- 
    
onShowSettings
chrome.notifications.onShowSettings.addListener(
callback: function,
)
Custom notification settings button is no longer supported.
The user clicked on a link for the app's notification settings. As of Chrome 47, only ChromeOS has UI that dispatches this event. As of Chrome 65, that UI has been removed from ChromeOS, too.
Parameters
- 
    callbackfunction The callbackparameter looks like:() => void