2011 - Начало проекта Node-webkit
var fs = require('fs');
fs.watchFile('access.log', function(a){
document.getElementById('log').innerHTML =
fs.readFileSync('access.log', {encoding:'utf8'});
});
"name": "dummydemo",
"version": "0.0.1",
"main": "index.html",
"window": {"width": 400,"height": 400},
"dependencies": {
"moment": "2.10.2",
"handlebars": "^2.0.0"
}
<div class="hello">
Привет, NW.JS!
</div>
… добавим немного CSS и запустим
...
"window": {
"toolbar": false
}
...
...
"window": {
"toolbar": false,
"frame": false
}
...
...
"window": {
"toolbar": false,
"frame": false,
"transparent": true
}
...
...
"window": {
"kiosk": true
}
...
...
"window": {
"show": false
}
...
var gui = require('nw.gui');
gui.Window.get(); //окно
gui.Shell(); //оболочка
gui.Tray // трей
gui.Menu // менюшки
gui.Clipboard // буффер обмена
gui.Shortcut // сочетания клавиш
// ...и другие элементы
var menu = new gui.Menu();
// Добавить пунктов меню или разделителей
menu.append(new gui.MenuItem({label: 'Ничего'}));
menu.append(new gui.MenuItem({type: 'separator'}));
// .. и повесить на них обработчики
menu.append(new gui.MenuItem({
label: 'Сказать "Привет!"',
click: function() {alert('Привет!');}
}));
var menubar = new gui.Menu({ type: 'menubar'});
// Подменю
menubar.append(new gui.MenuItem({ label: 'Главное'}));
menubar.append(new gui.MenuItem({ label: 'О нас',
submenu: menu
}));
//Получить текущее окно и подключить к нему верхнее меню
gui.Window.get().menu = menubar;
var tray = new gui.Tray({
title: 'Привет',
icon: 'icon.png'
});
var menu = new gui.Menu();
// .. наполняем меню пунктами
tray.menu = menu;
var shortcut = new gui.Shortcut({
key : "Ctrl+Shift+A",
active : function() {...},
failed : function(msg) {...}
});
// регистрируем сочетание клавиш в системе
gui.App.registerGlobalHotKey(shortcut);
var clipboard = gui.Clipboard.get();
// получить значение
var text = clipboard.get('text');
// установить значение
clipboard.set('Привет', 'text');
// очистить буффер
clipboard.clear();
%LOCALAPPDATA%/<name>
~/.config/<name>
~/Library/Application Support/<name>
где <name>
- это поле, заданное в package.json