使用超时创建网络通知
问题描述:
如何使用设置的超时创建TypeScript Web通知?使用超时创建网络通知
我创建了下面的代码,但在默认的超时前关闭通知不起作用:
export function createNotification(title: string, body: string) {
let now: Date = new Date(Date.now());
let date = now.add(5).seconds();
let options = {
body: body,
requireInteraction: false,
timestamp: date
};
new Notification(title, options);
}
作为一个测试,我想创建打字稿其持续5秒钟的通知,重写浏览器的默认行为。我看不到了打字稿分型文件中列出的任何进一步的选项,这些选项将是有益的对我说:
我使用的开发和测试使用Chrome这个软件,虽然我使用Firefox作为我的主浏览器。所以任何在Chrome中正常工作的解决方案,但不包括黑客或浏览器特定的代码都可以。
答
你试过Notification.close()吗?
function spawnNotification(theBody,theIcon,theTitle) {
var options = {
body: theBody,
icon: theIcon
}
var n = new Notification(theTitle,options);
setTimeout(n.close.bind(n), 4000);
}
来源:https://developer.mozilla.org/en-US/docs/Web/API/Notification/close
“但在默认超时之前关闭通知不起作用:”你可以更清楚什么是你希望为你的类的行为吗? – Pac0
'now.add()'...不存在于Date类中。你有没有考虑过使用类似momentjs的东西来处理日期。等价的时刻是'moment()。add(5,'seconds')'。 – DarkNeuron
此外,网络通知是Firefox中的越野车:https://caniuse.com/#feat=notifications(“Firefox通知在几秒钟后消失”) – DarkNeuron