Notification service for Angular using native HTML5 API.
bower install angular-notification
npm install angular-notification
angular.module('controllers.notification', ['notification'])
.controller('NotificationCtrl', function ($notification) {
$notification('New message', {
body: 'You have a new message.'
});
})
Create a new notification, the signature is the same as the Web Notification API.
Angular-notification provides some sugar to the default API, the permission is requested automatically. There is some options in addition to that already present in the official API:
- "delay": Specify a delay (in ms) after the notification is automatically closed. Default
null
. - "focusWindowOnClick": Focus the window when the notification is clicked (works only on Chrome, Firefox prevent this for security issue). Default
true
.
$notification('title', {
body: 'message',
dir: 'auto',
lang: 'en',
tag: 'my-tag',
icon: '/my-icon.jpg',
delay: 1000, // in ms
focusWindowOnClick: true // focus the window on click
})
Set default options.
$notificationProvider.setOptions({icon: '/my-icon.jpg'});
Close the notification.
var notification = $notification('hello');
notification.close();
Listen an event on the notification. Using this method, the listener is automatically wrapped in an $apply()
.
The signature is the same as the angular $scope.$on
signature, it returns the deregistration function.
Avalaible examples are 'click', 'show', 'close' and 'error'.
var notification = $notification('hello');
var deregister = notification.$on('click', function () {
console.log('User has clicked.');
});
// Stop listening the event.
deregister();
Request explicitly the permission to display notification, more info in the official API.
$notification.requestPermission()
.then(function (permission) {
console.log(permission); // default, granted, denied
});
MIT