是否可以从 Rails 应用程序推送浏览器通知

Posted

技术标签:

【中文标题】是否可以从 Rails 应用程序推送浏览器通知【英文标题】:Is it possible to push browser notifications from a rails app 【发布时间】:2015-06-14 01:43:44 【问题描述】:

我想知道是否有某种方法可以使用某种 gem 从 Rails 应用程序推送浏览器通知,我对此进行了很多谷歌搜索,但似乎找不到任何东西。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

Rails 是服务器端。为了能够做到这一点,您需要在您发送回客户端的 javascript 中为您完成这项工作。

我这样做的方法是在客户端上用 javascript 写一些东西,以异步方式返回到服务器,并检查是否有任何通知要显示。

【讨论】:

【参考方案2】:

DuckDuckGo-ing 也不会在这里发生。

目前的答案似乎不是一个简单的答案。通常有一个客户端(js)订阅用户体验某种可以向浏览器发送推送的后端(因为浏览器会轮询用户订阅的各种 PN 提供商的通知,这可能会因浏览器 PN api 的不同而有所不同,即使用户未访问该网站也是如此。要查看它的实际效果,请从现代 Chrome 浏览到 CNN*,订阅,关闭 CNN 选项卡,但让浏览器保持打开状态,以便在新闻报道登陆时查看 PN。你可以选择Pusher、ZeroPush(被 Twitter 收购并折叠成Fabric)或Roost(Roost 的演示都不能在 OS X 上运行任何具有零扩展和疯狂快速互联网连接的流行浏览器)如果有硬币可以尽快开始。

Chrome 的注意事项:似乎至少有 两 (2) 个 PN API,旧的 Chrome 扩展推送 已被弃用和 Chrome Web Push,它可以将 PN 转发到操作系统在页面外工作。不确定 CEP 是否可以在没有启用 PN 的页面上运行...或其他浏览器(如 FF (webpush)、Safari、IE/Edge 或移动浏览器中的 PN 的当前状态)。

这对于优秀的人来说似乎也是沃土,可以贡献一个类似 errbit 的 Rails 应用程序/gem。通过查看push-api 和/或嗅探您的流量,有可能重新设计一个适用于大多数主流浏览器的自托管(例如使用 Sinatra、Node 或 Go)的一些简单且强大的轻量级服务器。

*是的,与closed 其调查新闻部门专注于“酒店”和“谈话头”“新闻”的新闻组织相同。请参阅VICE(Kaj Larsen 现在可以使用)、Channel4 和 Journeyman Pictures 了解替代方案。

顺便说一句,对于相关的移动应用(不是移动浏览器) PN:查看ruby-push-notifications...大多数生态系统都需要安装官方应用才能使用其 PN 系统。

Chrome + OS X PN

【讨论】:

以上是关于是否可以从 Rails 应用程序推送浏览器通知的主要内容,如果未能解决你的问题,请参考以下文章

推送通知的应用程序

用于 POC 的 Rails 应用程序中的 Apple 推送通知

离子1信号有一种方法可以知道从背景到前景打开应用程序或启动应用程序时是否有推送通知

使用 Rpush 将推送通知添加到我的 rails 3 应用程序时出错

使用 Urban AirShip 和 Rails 3 for iphone 推送通知

用于后端同步的 Javascript 推送通知