This repository has been archived on 2022-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
AriaNg/src/scripts/services/ariaNgNotificationService.js
2016-06-26 22:57:44 +08:00

50 lines
1.7 KiB
JavaScript

(function () {
'use strict';
angular.module('ariaNg').factory('ariaNgNotificationService', ['$notification', 'ariaNgSettingService', function ($notification, ariaNgSettingService) {
var isSupportBrowserNotification = $notification.isSupported;
var isPermissionGranted = function (permission) {
return permission == 'granted';
};
return {
isSupportBrowserNotification: function () {
return isSupportBrowserNotification;
},
isPermissionGranted: function (permission) {
return isPermissionGranted(permission);
},
hasBrowserPermission: function () {
if (!isSupportBrowserNotification) {
return false;
}
return isPermissionGranted($notification.getPermission());
},
requestBrowserPermission: function (callback) {
if (!isSupportBrowserNotification) {
return;
}
$notification.requestPermission().then(function (permission) {
if (!isPermissionGranted(permission)) {
ariaNgSettingService.setBrowserNotification(false);
}
if (callback) {
callback(permission);
}
});
},
notify: function (title, content) {
if (isSupportBrowserNotification && ariaNgSettingService.getBrowserNotification()) {
$notification(title, {
body: content
});
}
}
}
}]);
})();