A simple HTML5 notification for Angular 1
- Go to your project directory using your command line tool then install the project using npm
npm install angular-desktop-notification
- Include angular.js and angular-desktop-notification.js to your index page.
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="angular-desktop-notification.js"></script>
- Add the ngDesktopNotification module to you application.
angular.module('myApp', ['ngDesktopNotification']);
- You can now use the injectable service 'desktopNotification'.
angular.module('myApp').controller(function (desktopNotification) {
desktopNotification.show('My Notification');
});
- You can also set the default app-wide configuration for desktopNotification
angular.module('myApp').config(function (desktopNotificationProvider) {
desktopNotificationProvider.config({
autoClose: false,
showOnPageHidden: true
});
});
A simple usage would be, request the permission and display the notification in the success callback
desktopNotification.requestPermission().then(function (permission) {
// User allowed the notification
desktopNotification.show('Hello', {
body: 'I am an HTML5 notification',
onClick: function () {
// Handle click event
}
});
}, function (permission) {
// User denied the notification
});
This method returns true if the browser supports the Notification API, false otherwise
desktopNotification.isSupported();
This method will get the current permission set in the browser which could be one of the ff.
- desktopNotification.permissions.default
- desktopNotification.permissions.denied
- desktopNotification.permissions.granted
desktopNotification.currentPermission();
This method returns a $q promise, if the user allowed the notification the successCallback will be executed, errorCallback will be executed otherwise
desktopNotification.requestPermission().then(successCallback, errorCallback);
This method will display the notification using the parameter values
- title - should be a string
- options - should be an object with the ff. properties
- options.body - the message of the notification
- options.icon - a string path of an icon, jpg and etc.
- options.autoClose - a boolean property that will close the notification after the duration specified (Defaults to true)
- options.duration - an integer that will set the seconds before the notification is automatically closed (Defaults to 5)
- options.showOnPageHidden - a boolean property that will only show the notification if the page is hidden (Defaults to false)
- options.onClick - a function that will trigger when the notification is clicked (Defaults to none)
desktopNotification.show(title, options);
Note: Please see all the available parameters here at the [official documentation] (https://developer.mozilla.org/en/docs/Web/API/notification#Instance_properties)
Angular Desktop Notification is not supported in all browsers.
Please see [supported browser versions] (http://caniuse.com/#feat=notifications) for more information on the official support specification.
Also, only Chrome allows the desktop notification to persist, if and only if, the user hovers on it. Please check the [other browsers closing behavior] (https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API#Closing_notifications).
- https://github.com/sagiegurari/angular-web-notification
- https://github.com/ttsvetko/HTML5-Desktop-Notifications
This project is licensed under the MIT License - see the [LICENSE] (https://github.com/jmsanpascual/angular-desktop-notification/blob/master/LICENSE) file for details
- Unit tests
- Support for older browser versions and IE