Лучший способ хранить временные данные для передачи из веб-приложения в настольное приложение, используя JavaScript - PullRequest
2 голосов
/ 19 марта 2012

Я ищу наилучшую практику здесь.

Мне нужно хранить 10 переменных информации в определенном формате:

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

с использованием Javascript.Я думал об использовании куки.

Мой сценарий выглядит следующим образом: пользователь будет на Salesforce.com, и он будет вводить информацию о клиенте в запись.Затем они нажимают кнопку, чтобы получить цитату.Кнопка, использующая JS, запишет поля Salesforce во временный файл (возможно, cookie).Оттуда другое приложение MS получит этот файл и прочитает значения.

Как бы вы, ребята, сделали это?

Спасибо за время.

Ответы [ 4 ]

2 голосов
/ 19 марта 2012

Браузер не позволит вам писать файлы, вообще говоря.Для этого вам потребуется использовать механизм выхода из изолированной программной среды безопасности, например подписанный Java-апплет.

1 голос
/ 20 марта 2012

Cookies НЕ являются хорошим вариантом здесь. Настольные приложения не должны пытаться получить доступ к файлам cookie браузера; в лучшем случае это считается «плохо себя ведет код»; в худшем случае вы не сможете это сделать, иначе ваше приложение будет обнаружено как вредоносное ПО. Даже если это было сочтено нормальным, вам придется писать реализации для чтения файлов cookie для любого браузера, который вы хотите поддерживать, поскольку не существует стандарта для их локального хранения.

Почему бы не сделать настольное приложение доступным к сети от имени пользователя? Записывайте запросы цитаты SFDC в новый пользовательский объект SFDC, например Quote_Request__c или аналогичный, и приложение может запрашивать самые последние записи, созданные пользователем через API.

Интеграция с буфером обмена, хотя иногда она кажется неуклюжей, может быть недорогим вариантом.

Если вам необходимо выполнить запись в какой-либо локальный файл, вам нужно будет использовать Flash или Java или заставить пользователя локально сохранить загруженный файл (как любая обычная загрузка из браузера).

Другой вариант - зарегистрировать приложение для настольного компьютера в качестве обработчика протокола URL; так, скажем, myquote: // firstname / lastname / product / price / etc можно щелкнуть в веб-браузере, чтобы запустить приложение и проанализировать «URL». Может плохо работать с очень длинными / сложными данными.

0 голосов
/ 19 марта 2012

Да, куки, конечно, вариант в этом случае. Файлы cookie доступны через глобальный объект document (например, 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);
0 голосов
/ 19 марта 2012

Вы можете добавить поток / задачу в приложение MS, которое отслеживает изменения в каталоге, в котором создан файл cookie.Когда вы обнаружите новый файл, который соответствует вашим требованиям, вы можете действовать по нему.Вам нужно будет использовать DirectoryInfo для этого подхода.Вы также можете создать и Windows или веб-сервис, который приложение прослушивает и может передавать данные таким способом из веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...