- webNotification :
object
A simplified web notification API.
- ShowNotificationCallback :
function
'showNotification' callback.
- PermissionsRequestCallback :
function
'requestPermission' callback.
A simplified web notification API.
Kind: global namespace
Author: Sagie Gur-Ari
- webNotification :
object
True to enable automatic requesting of permissions if needed.
True if permission is granted, else false.
Triggers the request permissions dialog in case permissions were not already granted.
Access: public
Param | Type | Description |
---|---|---|
callback | PermissionsRequestCallback |
Called with the permissions result (true enabled, false disabled) |
Example
//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.');
}
});
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 |
Called after the show is handled. |
Example
//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);
}
});
});
});
'showNotification' callback.
Kind: global typedef
Param | Type | Description |
---|---|---|
[error] | error |
The error object in case of any error |
[hide] | function |
The hide notification function |
'requestPermission' callback.
Kind: global typedef
Param | Type | Description |
---|---|---|
granted | Boolean |
True if permission is granted, else false |