在 Chrome 或 Firefox 中从已关闭的 Web 应用程序发送桌面通知?
Posted
技术标签:
【中文标题】在 Chrome 或 Firefox 中从已关闭的 Web 应用程序发送桌面通知?【英文标题】:Send desktop notifications in Chrome or Firefox from a closed web app? 【发布时间】:2014-12-01 03:18:35 【问题描述】:我的目标是在 Chrome 或 Firefox 中从当前未在浏览器中打开的网络应用程序(我们称之为 X)发送Gmail-style desktop notifications,而无需用户安装应用程序或扩展程序。如果用户需要授予从 X 接收通知的权限是可以的,如果需要打开浏览器才能显示通知也可以,只要 X 不需要在浏览器中打开即可。不需要打开任何浏览器窗口的解决方案也可以。
我只是花了一天时间研究这个,到目前为止我认为我已经学会了:
从 OSX Mavericks 开始,就可以通过 Safari Push Notifications 在 Safari 7+ 中执行此操作。 Web Notifications API 在 Chrome/Firefox 中工作,但需要用户的浏览器对 X 开放。 Twitter 发送类似的网络通知,无需先征求用户许可,但要求用户的浏览器打开 Twitter。 有很多关于可能的 Growl 实现的参考,但据我所知,所有这些都需要用户安装 Growl 和/或支持 Growl 的应用才能工作。我上面的任何陈述都可能是错误的 - 我很想听听! - 我也愿意接受任何其他解决方案。有什么想法吗?
感谢阅读。
【问题讨论】:
【参考方案1】:即使您的网页不活动,您也可以发送推送通知,使用Service Workers、Notification API for service workers 和push API(用于服务器启动的通知)(或scheduled notifications)。
截至 2016 年 6 月,Chrome、Firefox 和 Opera 支持 Service Worker。在https://jakearchibald.github.io/isserviceworkerready/查看状态
有关相关讨论、实施状态和规范,请参阅以下链接。
服务人员是 enabled by default since Chrome 40、Firefox 33 和 Opera 24。请参阅 html5Rocks tutorial 和 MDN。 推送通知:Chrome 42+、Firefox 44+【讨论】:
您链接到的所有状态页面似乎都表明此功能已在 Chrome 上运行。 很好的答案,有很多资源和参考资料,但有点压倒性。是否有注册服务工作者、处理 HTTP 推送,然后向用户显示通知的示例? @speedplane The answer by collimarco 链接到一些完整的教程。如果您不介意依赖 Google 的服务器/基础设施,请参阅 developers.google.com/web/updates/2015/03/… 如w3.org/TR/task-scheduler 中所述此规范正在作为工作组说明重新发布,表明它没有作为推荐跟踪文件进一步发展。 那句话很难理解,但我想这意味着它不会被实施。【参考方案2】:您可以使用 W3C Push API 完成您正在寻找的事情。
如果您想从头开始构建所有内容,我建议您开始阅读this tutorial by Google。它适用于 Chrome,但 Firefox 适用于 a very similar way。
但是工作量很大,而且“标准”仍在不断发展:我建议您使用Pushpad 之类的服务(我是创始人)。
【讨论】:
免责声明:此人是 Pushpad 的 CTO,这是一项付费服务以上是关于在 Chrome 或 Firefox 中从已关闭的 Web 应用程序发送桌面通知?的主要内容,如果未能解决你的问题,请参考以下文章
在 Firefox 或 chrome 中获取 <img> 二进制文件而不发出新请求 [重复]
关闭编译器源映射 = 空 (Chrome) 或错误 (Firefox) 代码窗口
无法在 chrome 和 mozilla firefox 浏览器中从 DhtmlxGrid 复制文本
Chrome 让人失望,是时候转到 Firefox 或 Edge ?