- PVSM.RU - https://www.pvsm.ru -

Новшества node-webkit 0.7.1

Прямо сегодня (19 августа) интеловский Центр технологий с открытым исходным кодом выдал на-горá очередную версию движка node-webkit [1]. Движок этот, как и прежде, интересен тем, что умеет открывать браузероподобные окна (на основе кода Chromium) и употреблять в них API Node.js [2] — так что он обеспечивает нетрудное создание GUI-приложений методами веборазработки (на языках JavaScript, HTML, CSS, WebGL и т. д.) под операционные системы Windows, Mac OS X и Linux.

Новая версия получила номер 0.7.1 и содержит движок Node версии 0.10.12, как нетрудно видеть в тестовом окне:

[скриншот окна]

Код тестового окна я сегодня открыл на Гитхабе [3], так что желающие могут с ним ознакомиться и убедиться воочию, что начальные (helloworldные) шаги программирования для node-webkit ничуть не сложнее обычной веборазработки, усиленной возможностями API Node [2].

Менее месяца тому назад (24 июля) я обозрел [4] одну из предыдущих версий node-webkit (версию 0.6.3). С тех пор прошло не много времени, однако в node-webkit появился ряд небезынтересных новшеств:

  • Появилась поддержка протокола app [5]. Теперь в манифесте приложения [6] можно записать параметр main [7] в виде «"main": "app://hostname/path"», причём в роли имени хоста (hostname) может выступать любой идентификатор, а путь (path) отсчитывается от того каталога-корня, в котором лежит сам манифест (файл package.json). После этого во браузерной части приложения (в HTML, в CSS и т. п.) все «абсолютные адреса от корня» (начинающиеся косою чертою) станут отсчитываться от того же каталога — этот эффект будет необыкновенно полезен для тех, кто переупаковывает под node-webkit какое-нибудь такое приложение, которое ранее крутилось в Паутине и содержало массу путей «от корня». Понятно, что это частный случай. Если же случай противоположный (все пути были относительными), то можно не возёхаться с новым протоколом, а в значении у "main" записывать, как и раньше, относительный путь от манифеста. (В простейшем случае — "index.html".)
     
  • Появилась возможность джаваскриптом менять значение [8] элемента input, имеющего атрибут type="file"; таким образом, обеспечивается полная автоматизация отгрузки файлов в Сеть внутрибраузерным способом (что удобнее, чем в API Node).
     
  • В новом поле App.manifest [9] можно считывать значения манифеста приложения. Не нужно лишний раз делать require('package.json'), ведь все эти сведения и без того считываются node-webkit при запуске приложения.
     
  • К обработчику события App.open [10] теперь поступает командная строка целиком. Раньше каждый параметр командной строки вызывал отдельное такое событие, а теперь можно обрабатывать и те случаи, когда в командной строке не только перечисляются файлы, которые необходимо открыть, но и указаны параметры, имеющие какое-нибудь другое значение (например, флаги настроек).
     
  • API getUserMedia стало можно использовать для захвата копии всего экрана, как вон в том [11] примере.

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

Автор: Mithgol

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/41251

Ссылки в тексте:

[1] node-webkit: https://github.com/rogerwang/node-webkit

[2] API Node.js: http://nodejs.org/docs/latest/api/

[3] на Гитхабе: https://github.com/Mithgol/Hello-Habrahabr

[4] обозрел: http://habrahabr.ru/post/187630/

[5] протокола app: https://github.com/rogerwang/node-webkit/wiki/App%20protocol

[6] в манифесте приложения: https://github.com/rogerwang/node-webkit/wiki/Manifest-format

[7] параметр main: https://github.com/rogerwang/node-webkit/wiki/Manifest-format#main

[8] джаваскриптом менять значение: https://github.com/rogerwang/node-webkit/wiki/Changes-to-DOM

[9] App.manifest: https://github.com/rogerwang/node-webkit/wiki/App#manifest

[10] App.open: https://github.com/rogerwang/node-webkit/wiki/App#open

[11] вон в том: http://simpl.info/screencapture/

[12] Источник: http://habrahabr.ru/post/190590/