## Objects
webNotification : object

A simplified web notification API.

## Typedefs
ShowNotificationCallback : function

'showNotification' callback.

PermissionsRequestCallback : function

'requestPermission' callback.

## webNotification : 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.
The callback invoked will get an error object (in case of an error, null in case of no errors) and a 'hide' function which can be used to hide the notification. **Access**: public | Param | Type | Default | Description | | --- | --- | --- | --- | | [title] | 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 |