Sco*_*ott 9 javascript notifications client-side service-worker
假设:
如果没有后端服务器推送该通知,我该如何触发桌面通知?这可能吗?
如果提供超时/间隔并且web-alarm/task-scheduler规范尚未准备好使用,则服务工作者将被浏览器关闭.是否没有客户端方法在将来的某个指定时间触发通知?
桌面通知是否严格不是"推送通知"?本质上,推送通知是从服务器推送的.可以从客户端触发通知吗?
您可以考虑使用localStorage.但是,这仅对使用相同设备和浏览器的用户有利.
下面是一个在页面加载时启动的功能.如果您希望它在整个会话期间定期发生,您可以将其包装setInterval并定期检查.这是假设它需要在24小时后到毫秒.
// on page load
window.onload = () => {
const dayMs = 24*60*60*1000; // 1 day in milliseconds
const notificationTimer = localStorage.getItem('notificationTimer');
if(notificationTimer){
const sendNotification = (Date.now() - (new Date(notificationTimer)).getTime()) > dayMs;
if(sendNotification){
const notification = new Notification('Displaying next day reminder from yesterday');
}
}
};
Run Code Online (Sandbox Code Playgroud)
当用户选择第二天提醒时,您可以设置notificationTimer:
localStorage.setItem(notificationTimer, Date.now());
Run Code Online (Sandbox Code Playgroud)
你必须对第二天的提醒做出一些警告,这些提醒不能在浏览器或设备上工作,这可能是也可能不是.
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |