crunchbutton/www/assets/cockpit/js/service.notification.js
2014-11-04 11:06:29 -08:00

58 lines
958 B
JavaScript

NGApp.factory('NotificationService', function($http) {
var service = {};
var ms = 5000;
service.check = function(fn) {
if (!window.Notification || App.isPhoneGap) {
return;
}
Notification.requestPermission(function (status) {
if (Notification.permission !== status) {
Notification.permission = status;
}
if (!fn) {
return;
}
if (Notification.permission === 'granted') {
fn(true);
} else {
fn(false);
}
});
};
service.notify = function(title, body, icon, fn) {
if (!window.Notification || App.isPhoneGap || document.hasFocus()) {
return;
}
icon = icon || '/assets/cockpit/images/notification.png';
service.check(function() {
var en = new Notification(title, {
body: body,
icon: icon
});
setTimeout(function() {
en.close();
}, ms);
en.onclick = function() {
window.focus();
if (fn) {
fn();
}
}
});
};
return service;
});