首页 > 其他分享 >快速入门

快速入门

时间:2023-09-04 19:12:22浏览次数:51  
标签:index 入门 menu js html nw 快速 NW

快速入门

NW.js基于Chromium 和 Node.js. NW.js利用Web技术结合Node.js及其模块进行桌面应用开发.

获取 NW.js

您可以从官网获取最新版本的文件,或通过源代码构建.

【注意】 :

推荐选择SDK构建方式开发应用 , 这样就可以使用开发工具进行调试 , 参考[构建方式](Advanced/Build-Flavors.md)章节查看构建方式之间的区别.

开发NW.js应用

例子 1 - Hello World

快速开发一个NW.js应用.

步骤 1. 创建 package.json:

{
  "name": "helloworld",
  "main": "index.html"
}

package.jsonJSON 格式格式的配置文件. main 属性定义了应用首页, 如本例的 "index.html"name则定义了应用名称. 具体查看 配置文件章节.

【注意】 "main属性定义为js文件"需知:

您可以将 `"main"`属性设置如 `"main.js"`的js文件. 该文件在应用启动时默认不打开窗口并在后台执行。 您可以稍后进行一些初始化并手动打开窗口。 例如:
// 初始化你的应用程序之后 ...
nw.Window.open('index.html', {}, function(win) {});

步骤 2. 创建 index.html文件:

<!DOCTYPE html>
<html>
  <head>
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
  </body>
</html>

步骤 3. 运行应用

cd /path/to/your/app
/path/to/nw .

/path/to/nw 是NW.js执行文件.

  • Windows系统中是 nw.exe;
  • Linux系统中是 nw;
  • Mac系统中是 nwjs.app/Contents/MacOS/nwjs;

【注意】 "Windows中的拖拽"需知:

Windows系统中 , 可拖拽包含 `package.json`的文件夹至 `nw.exe`直接运行应用.

例子 2 - 使用 NW.js APIs

NW.js中的APIs都被加载到 nw全局对象中 , 并能够在JavaScript代码中直接使用 . 更多细节请参考API文档

本例子以 index.html为例展示了如何创建应用菜单:

<!DOCTYPE html>
<html>
<head>
  <title>上下文菜单</title>
</head>
<body style="width: 100%; height: 100%;">

<p>右击显示上下文菜单</p>

<script>
// 创建一个空菜单
var menu = new nw.Menu();

// 添加菜单项
menu.append(new nw.MenuItem({
  label: '项 A',
  click: function(){
    alert('You have clicked at "项 A"');
  }
}));
menu.append(new nw.MenuItem({ label: '项 B' }));
menu.append(new nw.MenuItem({ type: 'separator' }));
menu.append(new nw.MenuItem({ label: '项 C' }));

// 监听事件
document.body.addEventListener('contextmenu', function(ev) {
  // 阻止显示默认菜单
  ev.preventDefault();
  // 点击处弹出定义的菜单对象
  menu.popup(ev.x, ev.y);

  return false;
}, false);

</script>  
</body>
</html>

... 运行应用:

cd /path/to/your/app
/path/to/nw .

【注意】 "require('nw.gui')"需知: 同样支持旧版加载 nw方式 require('nw.gui') , 返回 nw对象 .

例子 3 - 使用 Node.js API

你可以使用DOM直接调用node.js代码以及模块 . 这样就可以通过Nw.js轻松开发桌面应用 .

本例子以 index.html为例展示了利用Node.js的 os模块查询操作系统信息:

<!DOCTYPE html>
<html>
<head>
  <title>My OS Platform</title>
</head>
<body>
<script>
// 使用node.js获取系统信息
var os = require('os');
document.write('您当前系统为 ', os.platform());
</script>
</body>
</html>

您可以在在NW.js中通过npm 进行模块的安装 .

【注意】 "Node原生模块"需知:

当使用 `npm install`构建原生模块时无法兼容 NW.js ABI. 如需使用则需要根据 [`nw-gyp`](https://github.com/nwjs/nw-gyp)进行NW.js的重建. 详细参考[使用原生模块](Advanced/Use-Native-Node-Modules.md)章节.          

标签:index,入门,menu,js,html,nw,快速,NW
From: https://www.cnblogs.com/full-stack-linux-new/p/17677871.html

相关文章

  • 【ROS2机器人入门到实战】学会使用按键-GPIO输入
    3.学会使用按键-GPIO输入写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn你好,我是爱吃鱼香ROS的小鱼。上一节完成了LED灯的......
  • 【ROS2机器人入门到实战】嵌入式开发之从点灯开始
    第十三章嵌入式开发之从点灯开始写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn你好,我是小鱼。本章开始我们将一起走进机......
  • 【ROS2机器人入门到实战】使用开源库驱动IMU
    2.使用开源库驱动IMU写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn你好,我是爱吃鱼香ROS的小鱼。上一节我们安装好了MPU605......
  • 入门性文章要替新手多多考虑--csdn开发高手12期《利用Eclipse开发Hibernate应用程序》实
    注:本文使用Eclipse3.0.1(含中文包)测试,中英文请读者自行对应。  这篇文章总体写的不错,对于新手上路很有帮助。不过我在实践的时候也遇到了一些问题,在这里总结出来,希望大家少走弯路。1.Run的问题:“OK,Run一下”,作者仅提到这里,而对于新手,也许在这里就卡住了。怎么Run,Run什么啊?来,我......
  • MySQL入门系列1-数据定义语言(DDL)
    一、概念DDL:数据定义语言,用来定义数据库对象,包含数据库、数据表、数据表中的字段。二、数据库相关操作1.查询所有数据库showdatabases;2.查询当前所在的数据库selectdatabase();3.创建数据库createdatabaseifnotexists数据库名;4.删除数据库dropdatabase数据库名;5.切换......
  • 【玩转鲲鹏DevKit系列】如何快速迁移软件包?
    本文分享自华为云社区《【玩转鲲鹏DevKit系列】如何快速迁移软件包?》,作者:华为云社区精选。软件包含各种不同格式的文件,如RPM包通常包含二进制文件、SO库文件、JAR包、配置文件等,人工迁移适配,开发人员需要逐行分析软件包构成,替换、修改、编译不兼容文件,手动打包生成鲲鹏版本,周......
  • 【学习笔记】AS3快速上手笔记
    作者:fbysss关键字:AS3,ActionScript引言:如果有java、javascript基础,AS语法很好理解,有一个上午足够。看了本文,基本可编写代码调试。1.      开发工具FlashBuilder。新建一个【ActionScript】项目,会自动生成一个as文件,可以直接在里面写代码测试。从结构上看,这个文件是一个类,......
  • G-LAB网工入门免费公开课~开课啦!
    带你一起走进网工的世界!G-LAB网工入门免费公开课即将开讲!无论是想学习中小型网络构建还是企业网中两台终端通信过程,这个公开课都是你不容错过的!公开课课程为期两天,9月12日&9月13日晚20:00分享主题:---网络技术的基本介绍---中小型网络构建思路及技术应用概述---企业网中两台终端通信过......
  • kubernetes(K8s)快速入门
    ......
  • Java 快速排序
    思路通过一趟排序将无序数组划分成独立的两部分,其中一部分的所有元素比另外一部分的所有元素都要小,然后再按此方法对这两部分元素分别进行快速排序,整个排序过程可以递归进行,以此达到整个无序数组变成有序数组的目的。快速排序主要分为以下步骤:从无序数组中取出一个元素作为基......