## Objects
objectA simplified web notification API.
function'showNotification' callback.
function'requestPermission' callback.
object
A simplified web notification API.
**Kind**: global namespace
**Author**: Sagie Gur-Ari
* [webNotification](#webNotification) : object
* [.allowRequest](#webNotification.allowRequest) : Boolean
* [.permissionGranted](#webNotification.permissionGranted)
* [.requestPermission(callback)](#webNotification.requestPermission)
* [.showNotification([title], [options], [callback])](#webNotification.showNotification)
### webNotification.allowRequest : Boolean
True to enable automatic requesting of permissions if needed.
**Access**: public
### webNotification.permissionGranted
True if permission is granted, else false.
**Access**: public
### webNotification.requestPermission(callback)
Triggers the request permissions dialog in case permissions were not already granted.
**Access**: public
| Param | Type | Description |
| --- | --- | --- |
| callback | [PermissionsRequestCallback](#PermissionsRequestCallback) | Called with the permissions result (true enabled, false disabled) |
**Example**
```js
//manually ask for notification permissions (invoked automatically if needed and allowRequest=true)
webNotification.requestPermission(function onRequest(granted) {
if (granted) {
console.log('Permission Granted.');
} else {
console.log('Permission Not Granted.');
}
});
```
### webNotification.showNotification([title], [options], [callback])
Shows the notification based on the provided input.String | | The notification title text (defaulted to empty string if null is provided) |
| [options] | Object | | Holds the notification data (web notification API spec for more info) |
| [options.icon] | String | /favicon.ico | The notification icon (defaults to the website favicon.ico) |
| [options.autoClose] | Number | | Auto closes the notification after the provided amount of millies (0 or undefined for no auto close) |
| [options.onClick] | function | | An optional onclick event handler |
| [options.serviceWorkerRegistration] | Object | | Optional service worker registeration used to show the notification |
| [callback] | [ShowNotificationCallback](#ShowNotificationCallback) | | Called after the show is handled. |
**Example**
```js
//show web notification when button is clicked
document.querySelector('.some-button').addEventListener('click', function onClick() {
webNotification.showNotification('Example Notification', {
body: 'Notification Text...',
icon: 'my-icon.ico',
onClick: function onNotificationClicked() {
console.log('Notification clicked.');
},
autoClose: 4000 //auto close the notification after 4 seconds (you can manually close it via hide function)
}, function onShow(error, hide) {
if (error) {
window.alert('Unable to show notification: ' + error.message);
} else {
console.log('Notification Shown.');
setTimeout(function hideNotification() {
console.log('Hiding notification....');
hide(); //manually close the notification (you can skip this if you use the autoClose option)
}, 5000);
}
});
});
//service worker example
navigator.serviceWorker.register('service-worker.js').then(function(registration) {
document.querySelector('.some-button').addEventListener('click', function onClick() {
webNotification.showNotification('Example Notification', {
serviceWorkerRegistration: registration,
body: 'Notification Text...',
icon: 'my-icon.ico',
actions: [
{
action: 'Start',
title: 'Start'
},
{
action: 'Stop',
title: 'Stop'
}
],
autoClose: 4000 //auto close the notification after 4 seconds (you can manually close it via hide function)
}, function onShow(error, hide) {
if (error) {
window.alert('Unable to show notification: ' + error.message);
} else {
console.log('Notification Shown.');
setTimeout(function hideNotification() {
console.log('Hiding notification....');
hide(); //manually close the notification (you can skip this if you use the autoClose option)
}, 5000);
}
});
});
});
```
## ShowNotificationCallback : function
'showNotification' callback.
**Kind**: global typedef
| Param | Type | Description |
| --- | --- | --- |
| [error] | error | The error object in case of any error |
| [hide] | function | The hide notification function |
## PermissionsRequestCallback : function
'requestPermission' callback.
**Kind**: global typedef
| Param | Type | Description |
| --- | --- | --- |
| granted | Boolean | True if permission is granted, else false |