是否可以使用 javascript 从 Web 应用程序将咆哮通知发布到用户的计算机?这将仅在 Intranet 应用程序上,因此安全性不是主要问题。此外,它仅限于使用 Safari 或 Firefox 的 Mac 用户。
谢谢。
是否可以使用 javascript 从 Web 应用程序将咆哮通知发布到用户的计算机?这将仅在 Intranet 应用程序上,因此安全性不是主要问题。此外,它仅限于使用 Safari 或 Firefox 的 Mac 用户。
谢谢。
Growl 有一个网络接口,而 HTML 5 有Web Sockets,所以理论上它可能完全在 JavaScript 中是可能的(当实现 Web Sockets 时)。更实际地,如果您的网络服务器与您的客户端连接到同一个网络(即可以看到并连接到他们各自的 IP 地址),您可以对服务器上的脚本执行 AJAX 样式回调,该脚本将发出网络请求。
Google Gears has an experimental support for Growl notifications.
Fluid是一个适用于 Mac 的特定于站点的浏览器生成器,它公开了一个 JavaScript Growl 通知 API [ 1 ]:
window.fluid.showGrowlNotification({
title: "title",
description: "description",
priority: 1,
sticky: false,
identifier: "foo",
onclick: callbackFunc,
icon: imgEl // or URL string
})
您可以在userscripts.org搜索真实世界的示例。
当然,这种方法的一个缺点是,您必须强制用户在访问 Intranet 应用程序时使用 Fluid 浏览器。
像亚当建议的那样建立一座桥梁的优点是需要用户最少的努力。
遗憾的是,我试图想出一个用 javascript 发送咆哮消息的解决方案,但没有运气。我将总结我的研究以供将来参考。
调查的可能解决方案:
Flash - 由于 flash 可以访问常规套接字连接,因此提出一个可以通过 ExternalInterface 向 javascript 公开一些 API 的 flash 片段似乎是个好主意。Flash 对象将从网站服务器(远程位置)提供服务并尝试与本地咆哮接口通信,这将触发检查跨域策略文件。这涉及目前不被咆哮服务理解(支持)的通信,因此连接会失败。作为额外信息:windows 的咆哮支持基于闪存的客户端,但从最近的讨论来看,它在当前版本中已损坏)。
WebSockets - 类似于基于 flash 的想法,websockets 需要在连接升级为常规双向套接字连接之前初始交换几个 http 请求/响应。与 Flash 方法一样,这会起作用,但需要在套接字连接之前咆哮以支持基于 http 的初始通信。Growl 目前不支持,有人说它可能,一旦咆哮的规范是最终的。
Google Gears - 尚未对其进行测试,但自 2011 年 3 月起, google gears 已停产,这可能会引发在版本 >= 4 中支持 Firefox 的问题。
帖子http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api包含一个到 Growl.js 的链接,该链接是为与 Growl for Windows 一起工作而编写的。我对它的研究还不够多,不知道类似的方法是否适用于 Growl。
Another poster mentioned it, but you definitely can use Javascript (with a small helping of Flash, but you dont have to mess with that part) to send notifications to Growl running locally. Here is a test page to try it out without setting anything up: http://www.growlforwindows.com/gfw/examples/js/
Note however, this only currently works on Windows. As an earlier poster noted, the Mac version's support for Flash-based connections is currently broken.
On Windows, you can also use WebSockets, and here is a similar test page: http://www.growlforwindows.com/gfw/examples/websocket/
Note that this too is currently not implemented in Growl on the Mac, so if you are targeting Mac users (which it sounds like you are), these probably dont help. Just wanted to point out that both Javascript and WebSockets are possibilities once the support is fully added to the OSX client.
如果你的用户有 flash,你可以从这里借用 javascript-flash-growl 桥接器。您可以随时使用 JPEXS 之类的工具检查 Flash 内部的脚本。
我个人已经成功地使用它和 jQuery 为自己使用 mediawiki和使用 tampermonkey/greasemonkey 设置了一些自定义通知。如果 flash 被阻止/不允许/未安装,或者 flash 崩溃,则唯一的问题会出现。
你也可以试试Gritter,“一个类似咆哮的 jQuery 通知”。
对于仅限客户端的方法,我尝试了以下方法:
如果使用Growl for Windows或 Growl 1.3+ 版,您可以使用本演示页面中所示的 Flash 二进制文件
还有一个由 GfW 制作的 chrome 扩展,它本机使用二进制作为 NPAPI。GrowlChrome
这些基于 GfW 开发的 GNTP 协议,最初的 Growl (for Mac) 计划从 1.3 版本开始采用它
对于 1.2.x 版本,我发现了另一个有效的 chrome 扩展:Twitter Notifier和Growl Notifier for Google Play。这些扩展基于JSGrowl
链接