簡體   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