如何使用javascript发送真正的咆哮消息?

时间:2009-09-18 16:15:51

标签: javascript growl

是否可以使用javascript从网络应用程序向用户的计算机发布咆哮通知?这仅适用于Intranet应用程序,因此安全性不是主要问题。此外,它仅限于使用Safari或Firefox的Mac用户。

感谢。

9 个答案:

答案 0 :(得分:7)

Growl有network interface,HTML 5有Web Sockets,所以理论上它可能完全在JavaScript中(当实现Web套接字时)。更现实的是,如果您的网络服务器连接到与您的客户端相同的网络(即可以查看并连接到他们各自的IP地址),您可以对服务器上将发出网络请求的脚本进行AJAX样式回调。

答案 1 :(得分:3)

Google Gears有一个experimental support的Growl通知。

答案 2 :(得分:3)

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
})

相关来源为on the Fluid Developer page

您可以在userscripts.org搜索实际示例。

这种方法的一个缺点当然是,您必须强制用户在访问Intranet应用程序时使用Fluid浏览器。

像亚当建议的桥梁建议具有需要用户尽量减少努力的优势。

答案 3 :(得分:2)

我试图想出一个用javascript发送咆哮消息的解决方案,没有运气,可悲的是。我将总结我的研究以供将来参考。

调查可能的解决方案:

  • Flash - 由于闪存可以访问常规套接字连接,因此想出一个可以通过ExternalInterface将某些API暴露给javascript的Flash代码段似乎是一个好主意。 Flash对象将从网站服务器(远程位置)提供,并尝试与本地growl接口进行通信,这将触发检查跨域策略文件。这涉及到目前为止不被咆哮服务理解(支持)的通信,因此连接将失败。 作为一个额外的信息:对于基于Flash的客户端,可以支持基于Flash的客户端,但是从当前版本中的recent discussion判断它。

  • WebSockets - 类似于基于flash的想法,websockets需要在连接升级到常规双向套接字连接之前初始交换一对http请求/响应。与Flash方法一样,这可行,但需要使用growl来支持套接字连接之前的基于http的初始通信。一旦咆哮的规格是最终的,有些人说,Growl现在不支持这种情况。

  • Google Gears - 尚未对其进行测试,但截至2011年3月google gears has been discontinued,可能会引发版本> = 4支持Firefox的问题。

答案 4 :(得分:1)

帖子http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api包含一个指向growl.js的链接,该链接是为了与Growl for Windows一起使用而编写的。我没有仔细研究过,以了解类似的方法是否适用于Growl。

答案 5 :(得分:0)

对于仅限客户的方法,我尝试了以下方法:

如果使用 Growl for Windows 或Growl版本1.3+, 您可以使用Flash二进制文件,如this demo page

中所示

还有一个由GfW制作的chrome扩展,它本身使用二进制作为NPAPI。 GrowlChrome
这些是基于由GfW开发的GNTP协议,并且原始的Growl(用于Mac)预计从版本1.3采用它

对于版本1.2.x,我发现另一个可用的Chrome扩展程序: Twitter通知程序 Google Play的低级通知程序。这些扩展程序基于JSGrowl

链接

答案 6 :(得分:0)

你也可以试试Gritter,“jQuery的类似于咆哮的通知。”

答案 7 :(得分:0)

另一张海报提到了它,但是你绝对可以使用Javascript(只需要一小部分Flash帮助,但你不必混淆那部分)向本地运行的Growl发送通知。这是一个测试页面,无需进行任何设置即可试用:http://www.growlforwindows.com/gfw/examples/js/

但请注意,这仅适用于Windows。正如早先的海报所指出的那样,Mac版本对基于Flash的连接的支持目前已经破裂。

在Windows上,您也可以使用WebSockets,这是一个类似的测试页面:http://www.growlforwindows.com/gfw/examples/websocket/

请注意,这也是目前在Mac上的Growl中没有实现的,所以如果你的目标是Mac用户(听起来像你),这些可能没有帮助。只是想指出一旦支持完全添加到OSX客户端,Javascript和WebSockets都是可能的。

答案 8 :(得分:0)

如果您的用户有Flash,您可以从here借用javascript-flash-growl网桥。您可以随时使用JPEXS等内容检查Flash的脚本内部。

我个人成功地使用它和jQuery为自己using mediawiki设置一些自定义通知并使用tampermonkey / greasemonkey。如果阻止/禁止/未安装闪存,或闪存崩溃,则唯一的问题就出现了。