2012-03-19 25 views
2

我正在尋找最佳實踐。存儲臨時數據以使用javascript從Web應用程序傳遞到桌面應用程序的最佳方法

我需要存儲的信息的10個變量,在一定的格式:

lname: [John] 
fname: [Doe] 
etc... 

使用Javascript。我正在考慮使用Cookie。

我的方案如下: 用戶將在Salesforce.com中,他們會將客戶的信息輸入到記錄中。然後他們會點擊一個按鈕來獲取報價。使用JS的按鈕會將Salesforce字段寫入臨時文件(可能是cookie)。從那裏另一個MS應用程序將拿起該文件並讀取值。

你們會怎麼做?

謝謝你的時間。

+0

如果將使用cookie比它可以被認爲是「餅乾盜竊」,可能會被安全解決方案,如防病毒被描述爲有害的行爲... – 2012-03-19 15:10:55

+0

我想我可以回答你的問題,但我需要澄清。我揣測「用戶」會在網頁上輸入他的數據。但我不確定你的意思是「MsApplication」。這是另一個網頁,還是它在Windows上運行的應用程序。 – 2012-03-19 22:03:23

+0

@HowardSchutzman - 其實它確實是幽默。爲了簡單,我把MS應用程序。從技術上講這是一個畫架應用程序模擬一個VB應用程序的樣子來代表我們的綠色屏幕,漂亮的UI。它可以完成vb桌面應用程序可以完成的大部分工作。 – Havoc783 2012-03-20 13:34:25

回答

-1

您可以將線程/任務添加到MS應用程序中,以監視創建該cookie的目錄中的更改。當您檢測到符合要求的新文件時,您可以採取措施。這種方法需要使用DirectoryInfo。 您也可以創建應用程序監聽的窗口或Web服務,並可以通過Web應用程序以這種方式傳遞數據。

0

是的,在這種情況下,cookies肯定是一種選擇。可通過document全局對象訪問Cookie(例如document.cookie)。它可以包含一個字符串和一個到期日期。

這裏是一個cookie處理程序我寫道:

http://jsfiddle.net/zbaJz/1/

使用此處理程序,可以存儲在cookie中的信息,將能夠查看和刪除。然後,使用JSON stringify,可以將它傳遞給一個對象。

var name = { 
    'fname': 'John', 
    'lname': 'Doe' 
}; 

var jsonText = JSON.stringify(name); 
var cookieMonster = new Ovenmitts(); 
cookieMonster.bakeCookie('name', jsonText); 

然後,爲了把數據返回到一個對象來操作,您可以使用JSON.parse

var cookieInfo = cookieMonster.admireCookie('name'); 
var revived = JSON.parse(cookieInfo); 
2

瀏覽器不允許你寫文件,一般來說。爲此,您必須使用一種機制才能脫離安全沙箱,例如簽名的Java小程序。

1

餅乾在這裏不是一個好的選擇。桌面應用不應該嘗試訪問瀏覽器Cookie;充其量,它被認爲是「行爲不端的代碼」;最糟糕的是,你將無法做到這一點,否則你的應用程序將被檢測爲惡意軟件。即使它被認爲是好的,你也必須爲你想支持的任何瀏覽器編寫cookie讀取實現,因爲它們本地存儲的方式沒有標準。

爲什麼不讓桌面應用代表用戶訪問網頁?將SFDC報價請求寫入新的SFDC自定義對象,例如Quote_Request__c或類似的,並且應用程序可以通過API查詢用戶創建的最新記錄。

剪貼板集成雖然有時顯得笨重,但可能是一種低成本選擇。

如果必須寫入到某種形式的本地文件,你需要使用Flash或Java,或使用戶在本地保存一些下載的文件(就像任何普通的瀏覽器下載)。

另一種選擇是將您的桌面應用程序註冊爲URL協議處理程序;比如說,myquote:// firstname/lastname/product/price/etc可以從網絡瀏覽器中點擊來啓動應用程序並解析「URL」。儘管數據很長/很複雜,但可能效果不佳。

相關問題