多个选项卡上的 Webkit 通知 [英] Webkit Notifications on Multiple Tabs
问题描述
我正在为我的应用使用 WebKit 通知.假设我正在使用此代码:
I am using WebKit Notifications for my app. Say if I am using this code:
var n = window.webkitNotifications.createNotification(
'icon.png',
'New Comment',
'Praveen commented on your post!'
);
n.onclick = function(x) { window.focus(); this.cancel(); };
n.show();
PS 1:前五行实际上是一行.只是为了便于阅读,我以这种方式发布.
PS 1: The first five lines are actually a single line. Just for readability I have posted this way.
PS 2:有关完整代码,请参阅:无法使用 Google Chrome 显示桌面通知.
PS 2: For the full code, please see this: Unable to show Desktop Notifications using Google Chrome.
我的问题是,如果我打开了多个标签怎么办?
My question is, what if I have more than one tab opened?
说当我的应用上出现新评论时是否会被解雇.如果我打开了多个选项卡怎么办?这会产生很多通知吗?比如说,我打开了 10 - 15
个标签,然后我收到了两个通知.将生成多少通知,20 - 30
?
Say if this is gonna get fired when a new comment appears on my app. What if I have more than one tab open? Will this generate many notifications? Say, I have 10 - 15
tabs open and I get two notifications fired. How many notifications will be generated, 20 - 30
?
如果是这样,如何防止为每个打开的标签多次生成单个通知?
If that is the case, how to prevent generation of a single notification multiple times for each opened tab?
推荐答案
标签通知的详细说明,因此只有最后一个出现在 MDN 文档站点
A detailed explanation of Tagging notifications so only the last one appears is available on the MDN docs site
代码摘录[以防万一文档丢失]
An excerpt of the code [just in case the docs go down]
HTML
<button>Notify me!</button>
JS
window.addEventListener('load', function () {
// At first, let's check if we have permission for notification
// If not, let's ask for it
if (Notification && Notification.permission !== "granted") {
Notification.requestPermission(function (status) {
if (Notification.permission !== status) {
Notification.permission = status;
}
});
}
var button = document.getElementsByTagName('button')[0];
button.addEventListener('click', function () {
// If the user agreed to get notified
// Let's try to send ten notifications
if (Notification && Notification.permission === "granted") {
for (var i = 0; i < 10; i++) {
// Thanks to the tag, we should only see the "Hi! 9" notification
var n = new Notification("Hi! " + i, {tag: 'soManyNotification'});
}
}
// If the user hasn't told if he wants to be notified or not
// Note: because of Chrome, we are not sure the permission property
// is set, therefore it's unsafe to check for the "default" value.
else if (Notification && Notification.permission !== "denied") {
Notification.requestPermission(function (status) {
if (Notification.permission !== status) {
Notification.permission = status;
}
// If the user said okay
if (status === "granted") {
for (var i = 0; i < 10; i++) {
// Thanks to the tag, we should only see the "Hi! 9" notification
var n = new Notification("Hi! " + i, {tag: 'soManyNotification'});
}
}
// Otherwise, we can fallback to a regular modal alert
else {
alert("Hi!");
}
});
}
// If the user refuses to get notified
else {
// We can fallback to a regular modal alert
alert("Hi!");
}
});
});
这篇关于多个选项卡上的 Webkit 通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!