使用javascript存储从web应用程序传递到桌面应用程序的临时数据的最佳方法

使用javascript存储从web应用程序传递到桌面应用程序的临时数据的最佳方法,javascript,cookies,salesforce,Javascript,Cookies,Salesforce,我在这里寻找最佳实践 我需要以特定格式存储10个信息变量: lname: [John] fname: [Doe] etc... 使用Javascript。我在考虑用饼干 我的设想如下: 用户将访问Salesforce.com,并将客户信息输入到记录中。然后他们会点击一个按钮获取报价。该按钮使用JS将Salesforce字段写入临时文件(可能是cookie)。从那里,另一个MS应用程序将拾取该文件并读入值 你们会怎么做 感谢您的时间。您可以向MS应用程序添加一个线程/任务,用于监视创建cooki

我在这里寻找最佳实践

我需要以特定格式存储10个信息变量:

lname: [John]
fname: [Doe]
etc...
使用Javascript。我在考虑用饼干

我的设想如下: 用户将访问Salesforce.com,并将客户信息输入到记录中。然后他们会点击一个按钮获取报价。该按钮使用JS将Salesforce字段写入临时文件(可能是cookie)。从那里,另一个MS应用程序将拾取该文件并读入值

你们会怎么做


感谢您的时间。

您可以向MS应用程序添加一个线程/任务,用于监视创建cookie时目录中的更改。当您检测到一个新文件满足您的要求时,您可以对其进行操作。您将需要使用此方法。
您还可以创建应用程序侦听的windows或web服务,并通过这种方式从web应用程序传递数据。

是的,在这种情况下,Cookie当然是一种选择。cookie可通过
文档
全局对象(例如
document.cookie
)访问。它可以保存字符串和过期日期

下面是我编写的cookie处理程序:

使用此处理程序,您可以将信息存储在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);

一般来说,浏览器不允许您写入文件。为此,您必须使用一种机制来摆脱安全沙箱,例如签名的Java小程序

在这里,Cookies不是一个好的选择。桌面应用程序不应尝试访问浏览器cookie;充其量,它被认为是“行为恶劣的代码”;在最坏的情况下,你将无法做到这一点,否则你的应用程序将被检测为恶意软件。即使它被认为是可以的,您也必须为您想要支持的任何浏览器编写cookie读取实现,因为没有本地存储的标准

为什么不让桌面应用程序代表用户访问web?将SFDC quote请求写入新的SFDC自定义对象,如quote_Request____c或类似对象,应用程序可以查询用户通过API创建的最新记录

剪贴板集成虽然有时看起来很笨重,但可能是一种低成本的选择

如果您必须写入某种本地文件,则需要使用Flash或Java,或者让用户在本地保存一些下载的文件(就像任何普通的浏览器下载一样)


另一个选择是将您的桌面应用程序注册为URL协议处理程序;那么说,,myquote://firstname/lastname/product/price/etc 可以从web浏览器中单击以启动应用程序并解析“URL”。但是,可能无法处理非常长/复杂的数据。

如果您使用cookie,则可能会被视为“cookie盗窃”,并且可能会被防病毒等安全解决方案描述为有害行为……我想我可以回答您的问题,但我需要澄清。我估计“用户”会在网页上输入他的数据。但我不确定你所说的“MsApplication”是什么意思。这是另一个网页,还是一个在Windows上运行的应用程序。@HowardSchutzman-事实上,它真的是虚空。为了简单起见,我把MS应用程序放在了一起。从技术上讲,它是一个画架应用程序,模仿VB应用程序的外观,用更漂亮的UI表示我们的绿色屏幕。它可以完成vb桌面应用程序的大部分功能。