我在这里寻找最好的做法。
我需要以某种格式存储10个信息变量:
lname: [John]
fname: [Doe]
etc...
使用Javascript。我在考虑使用cookies。
我的方案如下: 用户将在Salesforce.com中,他们会将客户的信息输入记录。然后他们会点击一个按钮获得报价。使用JS的按钮会将Salesforce字段写入临时文件(可能是cookie)。从那里,其他MS应用程序将获取该文件并读入值。
你们会怎么做?
感谢您的时间。
答案 0 :(得分:2)
一般来说,浏览器不允许您编写文件。为此,您必须使用一种机制来退出安全沙箱,例如签名的Java小程序。
答案 1 :(得分:1)
Cookies不是一个好选择。桌面应用程序不应尝试访问浏览器cookie;充其量,它被认为是“行为不端的代码”;在最坏的情况下,您将无法执行此操作,否则您的应用将被检测为恶意软件。即使它被认为是好的,你也必须为你想要支持的任何浏览器编写cookie读取实现,因为没有关于它们如何在本地存储的标准。
为什么不让桌面应用代表用户访问网络?将SFDC引用请求写入新的SFDC自定义对象,如Quote_Request__c或类似对象,应用程序可以查询用户通过API创建的最新记录。
剪贴板集成虽然有时看起来很笨重,但可能是一种低成本的选择。
如果必须写入某种本地文件,则需要使用Flash或Java,或者让用户本地保存一些下载的文件(如任何正常的浏览器下载)。
另一种选择是将您的桌面应用注册为URL协议处理程序;所以,比方说,myquote:// firstname / lastname / product / price / etc可以从网页浏览器点击启动应用程序并解析“URL”。但是,对于非常长/复杂的数据,可能效果不佳。
答案 2 :(得分:0)
是的,在这种情况下,cookie肯定是一种选择。可以通过document
全局对象(例如document.cookie
)访问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);
答案 3 :(得分:-1)
您可以向MS应用程序添加一个线程/任务,以监视创建cookie时目录中的更改。当您检测到符合要求的新文件时,您可以对其执行操作。您需要使用DirectoryInfo来实现此方法。 您还可以创建应用程序侦听的窗口或Web服务,并可以通过Web应用程序以这种方式传递数据。