58 lines
958 B
JavaScript
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;
|
|
});
|