2009-04-11 76 views
1

我正在設計一個Web應用程序,它需要將一些信息傳輸到客戶端(非瀏覽器)應用程序(即Outlook)。假設客戶端應用程序具有某種API,我需要Web應用程序觸發客戶端(基於用戶單擊鏈接)來獲取信息並通過它的API將其傳輸到客戶端應用程序中。Web應用程序與客戶端的交互?

我的第一個想法是編寫一個ActiveX控件,我可以將安全代碼傳遞給該控件,然後使用該信息通過我創建的Web服務與Web應用程序對話,然後ActiveX控件可以將接口實現爲客戶端應用程序(即Outlook)。根據我讀過的內容,這可以通過ActiveX來實現。

我的問題是ActiveX不能在Mozilla瀏覽器或Chrome中工作,因爲我需要這是一個多平臺。我已經讀過NPAPI,它被認爲是等效的本地技術。我還閱讀了有關支持ActiveX的Firefox和Chrome的插件,但它們不是本機的。我需要有原生的開箱即用支持,以便用戶不必做任何特殊的事情,只需點擊並運行即可。所以這裏是我的問題:

1)ActiveX是我唯一的選擇爲IE?

2)我是否需要開發支持所有客戶端的ActiveX和NPAPI?

3)有沒有更好的方法來做到這一點,我不知道?由於重點在於無縫的用戶體驗,因此我願意接受其他技術。

感謝您的任何見解!

回答

0

如果我正確理解你的要求,我不我認爲任何事情都不會是無縫的。您需要將某種模塊下載到可以訪問其本地系統資源的客戶端計算機上。任何體面的瀏覽器都會向用戶拋出驚人的警告。

+0

謝謝dommer。用戶不得不下載一個組件(比如ActiveX),我認爲這是一個必要的罪惡,我只是想保持簡單,並且寧願使用一種技術,而不是基於瀏覽器的2或3。 – 2009-04-11 21:51:24

0

我怕你可能的解決方案之一是制定每一個瀏覽器的一個插件,你想這個應用程序一起工作,就像谷歌並與齒輪

但是你總是可以嘗試做欺騙與Java小程序,但我不知道,如果瀏覽器的安全策略可以讓你傾訴的應用程序,如Outlook,我相信它會

歡呼

+0

它會,但它會顯示一個對話框,要求用戶「信任」控件。該對話並不特別針對將要發生的事情,所以有時會讓用戶半死不休: -/ – taxilian 2009-12-25 05:24:47

0

根據您要傳輸的信息類型,可能會讓Outlook在下載時打開並處理它。例如,Outlook通常設置爲.ics(Internet日曆)文件的默認應用程序。當我下載一個.ics文件時,Outlook將啓動,並將該文件作爲日曆條目打開。

因此,一個瘋狂的想法是編寫一個用戶將安裝在他們的系統上的小應用程序。該應用程序將被註冊爲您的唯一文件類型的默認程序。當您想要傳輸信息時,只需將該文件作爲附件下載即可。你的程序將被調用來處理它。然後,您的程序可以使用Outlook API以任何您需要的方式將數據發送到Outlook。

如果交互不適合單個文件,則仍然可以使用虛擬文件。它的目的是啓動您的小型客戶端程序並給出說明。然後,您的程序可以通過另一端的Outlook API與您的Web服務進行通信。您可以在該環境中執行任何您喜歡的操作,尤其是在您創建Outlook加載項的情況下。

我還沒有做過幾種版本的Outlook編程。使用Outlook 2007和Visual Studio Tools for Office可能可以將這些部分組合在一起。主要好處是你根本不用擔心瀏覽器。

0

的ActiveX只適用於IE瀏覽器,但NPAPI適用於Firebreath,鉻等

你可以使用FireBreath項目,它提供了一個比較好用的抽象,用於創建一個單一的插件接口,將工作作爲ActiveX控件或NPAPI控件。

的項目主頁是在這裏:http://www.firebreath.org

儘管缺乏官方發佈的,它真的非常接近1.0只有Windows版本;這聽起來像是你所關心的。

對於「快速入門」信息,請查看此wiki頁面:http://www.firebreath.org/display/documentation/Creating+a+New+Plugin+Project - 有一個python腳本可以生成一個示例項目,您可以使用基本插件在大約30分鐘內啓動並運行。

另外,加入郵件列表 - 我是主要開發人員,我向您保證,如果您遇到問題,我們會盡快回答問題。 =]