Skip to content

Latest commit

 

History

History
167 lines (136 loc) · 6.02 KB

api.md

File metadata and controls

167 lines (136 loc) · 6.02 KB

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.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 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.');
 }
});

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 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);
            }
        });
    });
});

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