Framework для (HTML + JS) настольного клиента - PullRequest
7 голосов
/ 10 августа 2009

Я планирую написать Desktop Client для Windows и Mac. Он будет работать на веб-технологиях (HTML + JS). Поэтому он должен работать на движке WebKit на рабочем столе пользователя.

Недавно я увидел интересный подход к этой проблеме: Appcelerator Мне нравится его основная концепция, но я не хочу зависеть от их услуг. Вместо этого я хочу получить полный контроль над программой WebKit, которая загружает мое приложение.

Существуют ли приличные открытые фреймворки WebKit для создания настольных приложений? Приветствуются такие функции интеграции с настольными системами, как поддержка Growl и прочее.

С уважением,

Stefan


Обновление: я не ищу Adobe Air; -)

Ответы [ 3 ]

11 голосов
/ 22 октября 2009

Помимо Appcelerator, мне известны две графические среды рабочего стола, в которых есть компонент браузера, обертывающий webkit: GTK + и Qt. Вы можете заставить компонент браузера заполнять окно вашего приложения и писать большую часть (или все) приложения в HTML + CSS. Если вам нравится язык Python или это очень важная стандартная библиотека, вы можете использовать привязки python pyQt или pyGTK.

Более «навороченной» альтернативой Prism, если вы хотите использовать движок Gecko, является XULRunner (https://developer.mozilla.org/En/XULRunner).. Хотя Prism представляет собой набор облегченных привязок к рабочему столу для веб-приложения, XULRunner позволяет создавать полное приложение, такое как сам Firefox или Thunderbird, и т. д. Хотя многие приложения XULRunner написаны на XUL, легко написать целое приложение с использованием HTML / CSS в одном компоненте XUL WebBrowser - и в вашем JavaScript все еще есть все мощь родного настольного приложения.

Я написал пару настольных приложений, использующих XULRunner. Почти весь код приложений - это HTML / CSS / Javascript, но я включил инфраструктуру Python (через pyXPCOM и pyXPCOMext) и написал тонкий слой, который предоставляет некоторые функции Python для Javascript. Компоненты Mozilla, поставляемые с XULRunner, предоставляют вам приличный набор функций бесплатно, но если вам понадобится дополнительная функциональность или полнофункциональная библиотека программирования, Python поможет вам. Есть также привязки к Java. Или, если вы хотите использовать библиотеки C или C ++, вы можете создать XULRunner с нуля.

Обновление: Несколько вещей изменились с тех пор, как я впервые написал вышеупомянутое в 2009 году. Например, проект Prism был исключен из Mozilla Labs и впоследствии полностью прекращен в конце 2011 года (http://www.salsitasoft.com/2011/09/08/discontinuing-webrunner/). Еще одна альтернатива, на которую стоит обратить внимание: https://github.com/rogerwang/node-webkit.

Обновление за декабрь 2014 года: Еще одним последним вариантом является оболочка атома GitHub. Он использует модуль контента «Chromium», так же, как node-webkit и Chromium Embedded Framework (и публикует его как автономную библиотеку: https://github.com/brightray/libchromiumcontent). Одно из основных отличий от узла-webkit состоит в том, что вместо слияния цикла событий узла с событием Chromium Цикл Atom запускает их как в отдельных процессах, так и для взаимодействия между ними использует смесь синхронизирующих и асинхронных межпроцессных сообщений.

Если вам интересно внедрить Chromium в приложение на C ++ или .Net, есть также Awesomium .

3 голосов
/ 10 августа 2009

Платформа Appcelerator с открытым исходным кодом , поэтому вы не зависите от компании - вы всегда можете взломать код вокруг себя, если захотите. Если вы хотите больше контроля, вы всегда можете просто подключить непосредственно к WebKit . Джек, эквивалентный Gecko AIR / Appcelerator, вероятно, Mozilla Prism .

1 голос
/ 10 августа 2009

Если вы не совсем привержены webkit, я вспомню кое-что о проекте, который позволит вам сделать нечто подобное с движком Firefox. В основном это минималистское окно с рендерером геккона, а также Gears и ярлыком на рабочем столе для вашего приложения. Пока не могу найти ссылку.

...