Roger Wang 14 декабря объявил о выходе новой версии движка node-webkit — созданного в недрах Intel Open Source Technology Center мощного сочетания WebKit и Node.js, позволяющего создавать кросс-платформенные графические приложения методом веборазработки на языках HTML, CSS и JavaScript.
Новая версия имеет номер 0.3.6 и выглядит вот как:
По сравнению с версией 0.3.0, которую я обозревал в октябре, за последние два месяца случались только небольшие изменения, заслуживающие не более чем последней цифры в номере версии node-webkit. Зато изменений этих накопилось порядочно.
Прежде всего нетрудно заметить, что окна утратили «округлый» и «синенький» вид, похожий на Google Chrome, а вместо того вновь обрели общесистемный вид и форму. (На иллюстрации я привожу вид окна в Windows XP.) Также вернулся значок в заголовке окна. (Для сегодняшней демонстрации я поместил туда значок сайта Хабрахабра.)
Вот список остальных новшеств этой версии (по сравнению с 0.3.0):
- Возможен режим kiosk, в котором node-webkit распахивается на весь экран и не может быть закрыт при помощи мыши. (Подходит для создания информационных терминалов.)
- Обеспечивается автозапуск джаваскрипта, упомянутого в параметре node-main в файле package.json. (Скрипт запускается в контексте движка Node — а не в WebKit, как было бы по событию load, например. Это удобно для инициализации модулей Node.)
- Появился API управления приложением. Можно читать параметры командной строки, можно сразу закрыть все окна.
- Поддерживается элемент <datalist> — а значит, появляются подсказки для автозаполнения текстовых полей по мере печатания текста.
- Создано средство nw-gyp — вариант node-gyp, который служит для сборки двоичного кода неджаваскриптовых модулей для node-webkit таким же образом, каким node-gyp собирает их для Node. (Это необходимо, так как ABI у Node и node-webkit различаются.)
- Можно помещать элементы в меню окна. (Ещё один привычный элемент графического интерфейса пользователя.)
- Запуск консольных команд под Windows не приводит к появлению видимых окон консоли. (Как правило, вызывались они лишь ненадолго — и оттого их подмигивание не было никому приятно или полезно.)
- Можно использовать кодеки, защищённые патентом, если снабдить node-webkit собственной сборкою libffmpeg. (Но в комплекте с node-webkit продолжает поставляться ограниченная версия.)
- Окна могут предотвращать или откладывать своё закрытие, перехватывая и обрабатывая событие close.
- Авторы приложений могут прикладывать к ним (в подпапку plugins) некоторый набор браузерных плагинов (NPAPI), который станет использоваться наряду с общесистемным.
- Объект window стал доступен в контексте Node под тем же именем.
- В отладчике стал виден исходный код скриптов из контекста Node.
- Окну можно придать свойство «всегда наверху», чтобы оно перекрывало другие окна приложений.
- Появилась поддержка source map, то есть возможность видеть в отладчике код приложений на других языках, компилируемых в JavaScript (например, Clojure или TypeScript).
- Появилась поддержка Pointer Lock API, то есть возможность удержания мыши в приложении и реагирования на её относительное движение (наподобие 3D-стрелялок), а не на её положение.
- Теперь cookies сохраняются на компьютере после завершения приложения (между запусками).
- Появилась кнопка полного перезапуска приложения его разработчиком (в отладочных целях). Одновременно перезапускается и код для Node, и веботехнологическая часть (HTML, CSS, JS) в WebKit.
- Запуск nw.exe без параметров приводит к загрузке package.json (и приложения) из той же папки, в которой node-webkit лежит.
Как видите, за два месяца появилось более полутора десятков полезных новшеств, каждое из которых кого-нибудь да порадует, потому что упрощает жизнь.
Автор: Mithgol