This plugin is no longer actively maintained, you can still use it but issues will not be resolved. If you want the npm name, you can contact me by email.
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
});
Check the current permission to display notification. It returns a string of one of these values: default, granted, denied. more info in the official API.
var permission = $notification.getPermission(); // default, granted, denied
A property of bool indicating whether the browser supports the desktop notification feature or not.
var isDesktopNotificationSupported = $notification.isSupported; // true, false
MIT