繁体   English   中英

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

[英]How to send real growl messages with javascript?

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

谢谢。

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

Google Gears对Growl通知提供了实验性支持

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

相关来源位于Fluid Developer页面上

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

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

建立像亚当建议的桥梁具有需要用户付出最少努力的优点。

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

可能的解决方案:

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

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

  • Google Gears - 尚未对其进行测试,但截至2011年3月谷歌设备已经停产 ,可能会引发支持Firefox版本> = 4的问题。

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

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

如果使用Growl for Windows或Growl版本1.3+,您可以使用Flash二进制文件,如本演示页面所示

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

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

链接

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

另一张海报提到了它,但你绝对可以使用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都是可能的。

如果您的用户有闪存,您可以从这里借用javascript-flash-growl网桥。 您始终可以使用JPEXS等内容检查Flash的脚本内部。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM