Getting Started with nw.js for simplified Chinese(开始nw.js)

Translation for Getting Started with nw.js

翻译自Getting Started with nw.js

本章节包涵了一些指导信息,以帮助您开始nw.js编程。假定你有nw.js的二进制文件(这样的文件都可以在 “下载”READEME的部分,如果你想建立自己的二进制文件请参阅[Building nw.js]) nw.js基于Chromium and io.js。它可以让你直接从DOM调用Node.js的代码及模块,使您可以使用web技术来开发应用程序。此外,你可以很轻松的打包web应用到本地应用程序

基础

首先我们介绍nw.js,我们先从最简单的程序开始。 示例 1. Hello World

Capture3

创建 index.html:

  1. <html>
  2. <head>
  3. <title>Hello World!</title>
  4. </head>
  5. <body>
  6. <h1>Hello World!</h1>
  7. </body>
  8. </html>

创建 package.json:

  1. {
  2. "name": "nw-demo",
  3. "main": "index.html"
  4. }

压缩 index.htmlpackage.json 到zip压缩文件,并修改文件名为 app.nw:

  1. app.nw
  2. |-- package.json
  3. `-- index.html

下载你所使用的平台的预构建的二进制文件并用它打开 app.nw 文件:

  1. $ ./nw app.nw

注意: 在 Windows, 你可以拖拽 app.nwnw.exe 来打开它。

示例 2. Native UI API

Capture4

nw.js 有原生 UI 控制 API。 你可以用这些来控制窗口、菜单等等

下面的示例演示如何使用菜单的API。

  1. <html>
  2. <head>
  3. <title> Menu </title>
  4. </head>
  5. <body>
  6. <script>
  7. // 载入原生UI库
  8. var gui = require('nw.gui');
  9. // 创建空菜单
  10. var menu = new gui.Menu();
  11. // 添加菜单项,label为菜单项的显示名
  12. menu.append(new gui.MenuItem({ label: 'Item A' }));
  13. menu.append(new gui.MenuItem({ label: 'Item B' }));
  14. menu.append(new gui.MenuItem({ type: 'separator' }));
  15. menu.append(new gui.MenuItem({ label: 'Item C' }));
  16. // 移除菜单项
  17. menu.removeAt(1);
  18. // 遍历菜单项
  19. for (var i = 0; i < menu.items.length; ++i) {
  20. console.log(menu.items[i]);
  21. }
  22. // 添加菜单项并绑定菜单点击后的回调函数
  23. menu.append(new gui.MenuItem({
  24. label: 'Click Me',
  25. click: function() {
  26. // 创建HTML元素
  27. var element = document.createElement('div');
  28. element.appendChild(document.createTextNode('Clicked OK'));
  29. document.body.appendChild(element);
  30. }
  31. }));
  32. // 弹出上下文菜单
  33. document.body.addEventListener('contextmenu', function(ev) {
  34. ev.preventDefault();
  35. // 在你点击后弹出
  36. menu.popup(ev.x, ev.y);
  37. return false;
  38. }, false);
  39. // 获取当前窗口
  40. var win = gui.Window.get();
  41. // 创建一个窗口的菜单栏
  42. var menubar = new gui.Menu({ type: 'menubar' });
  43. // 创建一个菜单项
  44. var sub1 = new gui.Menu();
  45. sub1.append(new gui.MenuItem({
  46. label: 'Test1',
  47. click: function() {
  48. var element = document.createElement('div');
  49. element.appendChild(document.createTextNode('Test 1'));
  50. document.body.appendChild(element);
  51. }
  52. }));
  53. // 添加子菜单
  54. menubar.append(new gui.MenuItem({ label: 'Sub1', submenu: sub1}));
  55. // 设置菜单窗口的菜单
  56. win.menu = menubar;
  57. // 添加一个点击事件到已有菜单
  58. menu.items[0].click = function() {
  59. console.log("CLICK");
  60. };
  61. </script>
  62. </body>
  63. </html>

示例 3. Using node.js

您可以直接在DOM调用的Node.js和模块。因此,它实现了无限的可能性,写的应用程序与nw.js.

  1. <html>
  2. <body>
  3. <script>
  4. // 使用node.js获取系统平台
  5. var os = require('os')
  6. document.write('Our computer is: ', os.platform())
  7. </script>
  8. </body>
  9. </html>

运行与打包应用

现在,我们可以写简单的nw.js应用程序。下一步是了解如何运行并将其打包。

运行应用程序

多平台运行的两种常见方式

  • 从一个文件夹。启动路径指定该文件夹。
  • 从.nw文件(重命名.ZIP文件)。启动路径指定文件。

例如:

  1. nw path_to_app_dir
  2. nw path_to_app.nw

故障排除

如果有任何问题,请参阅 [[Troubleshooting]] 。

回到 Wiki 以查看更多