Как стать автором
Обновить

Комментарии 28

Очень интересно! А при распространении приложений, что необходимо ставить «в довесок»?
минимально необходимый набор — только сам node-webkit.
Как верно выше заметил djakomo, большинству приложений хватает самогó движка node-webkit.

Если используется какой-нибудь плагин NPAPI, то можно и плагин распространять вместе с приложением. (Но вообще-то node-webkit умеет подхватывать плагин из системы, если он установлен в системе, так что для наиболее распространённых плагинов — например, для Flash — можно на это одно и положиться.) В таких случаях надобно в манифесте включить употребление плагинов.

Если в приложении используется WebGL и есть желание, чтобы WebGL работал поверх DirectX в Windows, то придётся файлы D3DCompiler_43.dll и d3dx9_43.dll (из дистрибутива DirectX) приложить.

Если нужна поддержка MP3 и H.264 в <audio> и <video>, то понадобится библиотеку пересобрать и приложить, тем самым «инфицируя» свой проект GPL-кодом.
Меня больше интересует поддержка криптографии через API. Например, openssl.
Есть в API у Node модуль crypto, который, насколько я его понимаю, примерно на openssl и основывается.

При употреблении в node-webkit результат обращения к этому модулю нельзя присваивать одноимённой переменной (имя «crypto» занято в DOM у WebKit), но в остальном никаких трудностей.
Спасибо! Надо будет изучить его для использования в своих проектах.
В нем есть borderless режим? В appjs есть но он какой-то кривой.
image
Есть; достаточно для frame установить значение false.
Прозрачность, например через альфа-канал поддерживается? Как организовать перетаскивание окна?
Есть в доке где-нибудь про это?
Прозрачность окна, к сожалению, не поддерживается.

О перетаскивании окна см. ниже.
Жаль. Полноценной замены какой-нибудь джавы не получается пока :(
Но затем всё же придётся поиграть со свойствами «-webkit-app-region» и «-webkit-user-select» у той области, за которую предполагается таскать окно это.

Примеры кода есть в вики.
Есть. Например, вот так:

Режим с тулбаром не позволяет перемещать окно (без дополнительных настроек), но позволяет его масштабировать, потянув за границу.
Режим без тулбара:

такое окно не маштабируется и не перемещается пользователем (без дополнительного кодирования).
Ещё есть kiosk mode, предназначенный для программ, устанавливаемых в терминалы и подобные устройства (теоретически даёт fullscreen mode и невозможность переключиться на другие программы).
Кроме того, в случае Windows возможно завернуть само приложение и движок Node-Webkit в единый exe-файл, причём этому файлу есть возможность не только назначить иконку, но и связать потом с определённым типом документов (т.е. создание к примеру редакторов или просмотрщиков вполне реально).
А вот чего действительно не хватает, так это возможности вызывать внешние API (например, расположенные в DLL). Теоретически существует node-ffi, специально предназначенный для этих целей, на практике же для NWK этот модуль надо пересобирать. А тут, сами понимаете, всё в старых добрых традициях OpenSource: проще и быстрее написать собственный модуль, чем шаманить над сборкой уже написанного кем-то…
Можно собрать по инструкции за четыре шага.

Шаг 1: npm install nw-gyp -g

Шаг 2: npm install ffi

Шаг 3: cd node_modules\ffi

Шаг 4: nw-gyp rebuild --target=0.7.1

Перед выполнением всех этих шагов в системе должен стоять Python 2.7 (причём прописанный в PATH) и Microsoft Visual Studio C++ 2010 (сгодится и Express).
Очень не хватает возможности сборки программы в один бинарник :(
Не знал, спасибо.
Я, правда, сам её не пробовал.

Так что поаккуратнее там, хорошо?
Хорошо, баловать не буду :)
Извините, а может кто-нибудь описать реальный кейс в каких случаях это можно было бы использовать и в чем цимус?
Во-первых, полезно веб-программистам, не знакомым с разработкой под десктоп.
Да и получить на выходе полностью кроссплатформенную програму — тоже большой плюс.
… или использование одинакового набора инструментов для построения десктопного и клиент-серверного ПО.
А возможно ли повернуть окно nw? Например, как фото поворачивается мультитач жестами в Mac Os или iOS. Как поворачивать элементы страницы, безусловно, понятно, а вот само окно — нет, но очень хотелось бы.
Не совсем понятен ваш вопрос, в чем должен заключаться поворот окна на десктопной ОС. Изменение размера окна ( с 500х200 на 200х500, к примеру)? Да, это можно сделать программно.
Имеется ввиду, что в ответ на мультитач жест rotate (обзовем его так) поворачивается именно окно nw, а не просто элементы на страничке.
Как на фото, только представьте себе, что вместо фото у нас окно браузера.
Я понимаю, что глупый вопрос задаю, но все же интерес не позволяет обойти его стороной.
Спасибо за новость. А нет ли в планах решить проблему с libudev? Симлинки это хорошо, но не кошерно.
кто нибудь пробовал заюзать webrtc под node-webkit? нужны ли какие либо дополнительные костыли, или все будет работать «из коробки»?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации