Используя браузер для настольного UI

Необходимо использовать Отладку. Утверждайте для тестирования на логические ошибки в программах. Компилятор может только сообщить Вам о синтаксических ошибках. Таким образом, необходимо определенно использовать Операторы контроля для тестирования на логические ошибки. Как говорят тестирование программы, которая продает автомобили, что только BMW, которые являются синими, должны получить 15%-ю скидку. Компилятор ничего не мог сказать Вам о том, если Ваша программа логически корректна в выполнении этого, но оператор контроля мог.

10
задан Instance Hunter 29 October 2009 в 12:07
поделиться

6 ответов

В Windows можно встроить элемент управления IE ActiveX, который использует тот же механизм визуализации, что и IE. (Это плюс и минус). Вы можете установить свойство ScriptObject в коде вашего хоста и обращаться к нему в Javascript как window.external , чтобы делать то, что Javascript не может делать.

Если вы запустите локальный веб-сервер, у вас может быть ссылка для выхода в приложении, которая убивает веб-сервер.

2
ответ дан 3 December 2019 в 17:59
поделиться

Обратите внимание, что если вы решите запустить локальный веб-сервер , вы создаете угрозу безопасности.

Любая веб-страница, работающая на том же компьютере, которая знает о вашем приложении, может отправлять запросы на ваш сервер с помощью Javascript, и у вас нет простого и надежного способа узнать, откуда пришел запрос. (Не доверяйте заголовку referer )

Google Desktop, использующий аналогичный подход, имеет несколько реальных уязвимостей, которые позволяют любой веб-странице читать любой файл на диске.

Существует несколько способов защиты от этого; Я бы рекомендовал требовать, чтобы каждый запрос имел ключ аутентификации, который генерируется случайным образом для каждой машины (и срок его действия истекает в какой-то момент), который вы можете поместить в источник для фактических страниц. Защита XHR не позволит вредоносным веб-сайтам прочитать ключ аутентификации, что сделает их бессильными.

10
ответ дан 3 December 2019 в 17:59
поделиться

Вы не упомянули ОС, на которую нужно настроить таргетинг. Но вы могли бы создать программный веб-сервер, а затем запустить браузер по умолчанию. Подождите, пока пользователь не завершит работу браузера, а затем выключите веб-сервер.

Так, например, в Windows вы можете использовать CreateProcess () для запуска процесса затем MsgWaitForMultipleObjects (), чтобы дождаться завершения выполнения.

1
ответ дан 3 December 2019 в 17:59
поделиться

HTML-приложения (для краткости HTA) уже давно существуют. Все о них вы можете прочитать здесь . Это в основном HTML и Javascript с некоторыми дополнительными параметрами для создания окна и с доступом к локальной файловой системе. Они кажутся именно тем, что вам нужно. Это технология Microsoft, поэтому она будет работать только с IE в системах Windows. Я успешно использовал это в качестве интерфейса для CD-ROM, который использовался для распространения программного обеспечения среди студентов первого курса

. Другой вариант - использовать Adobe Air. Я не совсем знаком с этой технологией, но, похоже, она обеспечивает основу для развертывания веб-страниц в качестве настольных приложений. Я могу'

1
ответ дан 3 December 2019 в 17:59
поделиться

Учитывая расплывчатость исходного вопроса, я собираюсь предложить решение, которое будет работать с любым языком, на котором могут выполняться приложения командной строки. Хотя настройка OpenOffice может быть немного сложной, ее можно запустить в автономном режиме на сервере и, http://tools.cherrypy.org/wiki/SingleClickAndRun

Обратите внимание, чем в обычном веб-приложении вы, вероятно, будете использовать механизм создания шаблонов и загружать шаблоны из таких методов, как main.

Было бы неплохо, если бы чтобы встроить элемент управления браузера в окно графического интерфейса пользователя и закрыть сервер при выходе из приложения.

В целях безопасности вы могли бы добавить схему аутентификации. Некоторые из них поддерживаются cherrypy, но вы, возможно, также можете реализовать свои собственные, используя программные модули.

4
ответ дан 3 December 2019 в 17:59
поделиться

Я хочу сделать то же самое (настольное приложение, которое использует современный браузер HTML5 / CSS3 в качестве графического интерфейса настольного приложения), только с Ruby (различные причины, по которым я решил работать с Ruby). Удивительно, сколько кроссплатформенных библиотек придумали люди. Но, тем не менее, мало кто из нас сделал какую-либо работу по превращению веб-браузера в пользовательский интерфейс настольного приложения. Проблема кроссплатформенности ... ну, я не скажу, что решена, но скажу, что сделано несколько шагов в правильном направлении.

Для меня это было бы идеально с выходом новых стандартов HTML5 / CSS3. Я знаю, что это можно сделать с помощью локального веб-сервера.

Другой способ может быть похож на то, как ребята из «280 North» делают то, что они делают. Они разработали Objective-J (расширение обычного JavaScript, которое имитирует то, как Objective-C расширяет обычный C) и Cappuccino (Objective-J эквивалент фрейма Cocoa в Objective-C на MAC).Они также разработали «Атлас», который представляет собой версию «Интерфейса Builder» от компании Xcode для компании 280 North, для их фреймворков Objective-J и Cappuccino для создания Интернет-приложений. На самом деле Atlas - это веб-приложение Cappuccino, работающее на вашем рабочем столе как настольное приложение. В этом случае они используют Narwhal… кроссплатформенную универсальную платформу JavaScript для разработки приложений JS вне браузера (в основном специализированный веб-сервер).

Если кому-нибудь в голову придет идея заставить «Браузер, прямое подключение к настольному приложению» работать без необходимости сосуществования веб-сервера и при этом иметь возможность манипулировать локальной FS, мне было бы очень интересно… Хммм ... Теперь, когда я думаю об этом, мне интересно, можно ли для этого использовать новый проект Google Chrome «Native Client». NaCL очень похож на Active X, за исключением того, что вы не ограничены платформой Windows (но будете ограничены браузером Google Chrome, по крайней мере, на данный момент). Только есть дополнительная безопасность через песочницу, но вы можете манипулировать локальной FS ... Чем больше я думаю об этом, тем больше я начинаю подозревать, что это можно сделать.

Есть мысли?

4
ответ дан 3 December 2019 в 17:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: