Я пытаюсь реализовать настольные уведомления для моего приложения. Он работает нормально, если отправлено одно уведомление, однако, если отправлено более одного уведомления одновременно, Firefox не отображает ни одного из них. Эта проблема не существует с Chrome.
Это то, что просто невозможно с Firefox? У меня сложилось впечатление, что использование тегов внутри параметров уведомлений использовалось для составления уведомлений.
Код:
function isNewNotificationSupported() {
if (!window.Notification || !Notification.requestPermission) return false;
if (Notification.permission == "granted") throw new Error("");
try {
new Notification("");
} catch (e) {
if (e.name == "TypeError") return false;
}
return true;
}
function notifyMe(aa, bb, cc, dd) {
if (!("Notification" in window)) {
//alert("This browser does not support desktop notification");
} else if (Notification.permission === "granted") {
if (!document.hasFocus() || cc == 1) {
var options = {
body: bb,
icon: "",
dir: "ltr",
tag: dd
};
var notification = new Notification(aa, options);
notification.onshow = function() {
setTimeout(notification.close.bind(notification), 15000);
};
}
} else if (Notification.permission !== "denied") {
if (isNewNotificationSupported()) {
Notification.requestPermission(function(permission) {
if (!("permission" in Notification)) {
Notification.permission = permission;
}
if (permission === "granted") {
var options = {
body: bb,
icon: "",
dir: "ltr",
tag: dd
};
var notification = new Notification(aa, options);
notification.onshow = function() {
setTimeout(notification.close.bind(notification), 15000);
};
}
});
}
}
}
notifyMe("New notification1","newtest","1","test1");
notifyMe("New notification2","newtest2","1","test2");
Я создал jsfiddle для этого на:
Обновление: я думаю, что я решил это сейчас, изменив один из notifyMe на:
setTimeout(function() { notifyMe("Newnotification1","newtest","1","test1"); }, 200);
Firefox теперь правильно складывает их.