nw.js如何处理拖放操作 其实拖放(drag-drop)操作是Html5的功能,不是nw.js的内置API,那么我们采用Html5应用一般的处理方法就可以了。...nw.js会按照chrome浏览器默认处理文件的方式来处理拖放的文件,能显示的会直接显示,不能显示的会变成资源下载。 这肯定不是桌面应用想要的效果,那么Html5是如何处理拖放的呢?
NW.js的用途 NW.js 基于 Chromium 和 Node.js,从而可以在桌面app中使用浏览器开发技术并直接调用 Node.js 资源,甚至将一个web应用打包到本地也轻而易举。...安装NW.js 可以从官网下载; 推荐在开发时下载是sdk版,以使用DevTools 非sdk版也应同时下载,在发布时使用 写一个 Hello World!...NW.js程序 cd /path/to/your/app /path/to/nw ..../path/to/nw 是 NW.js 的二进制运行文件; 在Windows上是nw.exe,在Linux上是nw,而在Mac则是nwjs.app/Contents/MacOS/nwjs Linux和Mac...可能需要sudo提升运行权限 例如mac上用如下方式启动:sudo ~/nwjs/nwjs.app/Contents/MacOS/nwjs . ?
中仅保存极少量信息且会过期),数据持久化(Data Persistence)是本地应用开发中的常见需求,通俗的讲就是将瞬时数据(比如内存中的数据,断电即失效)保存为持久数据(比如写入数据库中长久保存); 由于NW.js...直接存储数据到本地文件 正如之前的文章提到过的,NW.js提供了App.dataPath来访问系统的应用数据目录, 可以利用其方便的存储应用配置文件等 不同平台上的具体指向: Win: $LOCALAPPDATA...) }); db.get('mittens').then(function (doc) { return db.remove(doc); }); https://github.com/nwjs/nw.js
默认情况下,nw.js发布的nw.exe文件请求的是普通权限,当我们的应用需要访问一些特殊目录或者注册表等,就需要程序启动的时候以管理员权限运行。...首先我们找一款使用nw.js开发的软件,这里我推荐AxeSlide,首先去下载软件,安装。...如果我们软件安装之后,使用的是非Administrator用户登录的话,启动软件的时候,就会弹出UAC提升框,提醒我们该软件请求以管理员身份运行,是否同意。那么AxeSlide是如何做到的呢?
在实际的NW.js程序开发中,我们可能在程序启动时做一些加载前逻辑,比如更新等等,那如何实现等待这些逻辑完成后才开始加载index.html呢?
也可以同时打开多个文件 nw path/to/app path/to/a.txt path/to/b.txt 为了访问到这些文件路径,需要使用App.argv属性,其返回一个参数数组 //如果要实际运行例子...nw.App.argv; if (args.length) { args.forEach(filepath=>{ //检查文件是否合法并进行某些操作 }); } 以上的做法只在程序启动时运行一次...在运行过程中,比如把文件拖放到应用图标上,会以同样的形式传递参数 此时为了拦截到每个打开的文件,需要侦听open事件 //此时的参数是文件路径的字符串 nw.App.on('open', filepath...Window API - 操作NW.js窗口 在NW.js中,Window API 只不过是对DOM中window对象的一层包装,很多(并非所有)方法和属性继承了后者的用法,同时window对象也是 Node.js...Tray API - 管理托盘状态图标 托盘区一般处在系统状态栏的右侧,一些长时间运行的应用或服务的图标被安置在此处,以免都挤在任务栏中过于拥挤。
Node.js常用来构建高并发的C/S应用,将这种模式移植到NW.js程序中虽然可行且费不了什么功夫,但仅仅这样做并不能发挥出平台所有的潜力;要知道NW.js允许直接在DOM中和Node.js交互,而这将大大加快程序的运行和简化开发...模块 内部模块 var fs = require('fs') 第三方模块 npm install 之后 var _ = require('underscore') C/C++ 模块 global对象 NW.js...console.log(global.shareObj.myData); //foo 在global顶端对象中指定了变量后,引用时可以省略global关键字 一些DOM操作不能在Node.js上下文中运行...process也是一个在窗口中和Node.js上下文中都可以访问到的全局对象 除了可以访问固有的 process.env.HOME 得到主目录等,还添加了如下属性: process.version['NW.js...manifest文件(package.json)中,node节点指向一个html页面,作为程序启动后的首个窗口 类似的还有node-main节点,指向一个Node.js模块,在程序的整个生命周期中,一直在后台运行
nw.js就是使HTML, CSS, JavaScript写的原本在浏览器上运行的程序,也可以在桌面端运行。...clone https://github.com/electron/electron-quick-start # 进入这个仓库 $ cd electron-quick-start # 安装依赖并运行..."nw-qqMusic", 项目名称 "version": "0.0.1", 版本号 "main": "electron.js" 项目入口文件 } 在项目根目录的命令行中 运行...npm run build npm run electron_build Nw与Electron的对比 nw.js无论从表面还是本质都更接近 Node.js,nw.js直接继承和使用了node.js...的启动、开发、运行方式,对node.js的修改最小,而 electron的改动很大,增加了很多自己的东西,使用起来感觉与node.js差别明显。
Flutter的优点包括: 跨平台支持:Flutter可以在Android、iOS和桌面平台上运行,极大地简化了跨平台应用程序的开发流程。...包大小较大:由于Flutter应用需要打包Dart运行时和Flutter框架,导致应用的安装包大小较大。...nw.js NW.js(以前称为Node-Webkit)是一个基于Chromium和Node.js的框架,用于构建跨平台的桌面应用程序。...NW.js具有以下特点: 跨平台支持:NW.js可以在多个操作系统上运行,使开发者能够使用相同的代码库构建跨平台的桌面应用程序。...然而,NW.js也存在一些挑战,包括: 性能相对其他框架较低:由于NW.js同时运行Chromium和Node.js,可能导致一些性能方面的挑战,例如初始启动时间较长和内存占用较高。
然后笔者又尝试在node.js的环境下执行上述代码,不出意外,可以顺利地直接完成执行并运行恶意文件,因此该exp代码确实是在node.js环境下触发的,但是即使我们先忽略掉如何通过x-powered-by...3.该漏洞扫描器在某个页面中将获取到的版本信息未经过滤及其他处理直接显示在nw.js框架编写的页面中。...4.由于nw.js框架编写的页面会直接触发xss,导致xss payload中的onerror方法触发,加载远程的node.js代码。...App", "width": 800, "height": 600 } } 到此整个demo的编写就已经完成,后续可以通过编译运行或在线运行测试该demo的实际效果,我这里通过一个上线木马来测试对应的效果...运行后的前端界面: 可以看到页面中加载失败的图片为触发XSS的特征,然后我们可以发现主机成功上线到服务器。
同样基于 Chromium + Node.js 的,还有 NW.js,我们先来看看它们之间有什么不一样吧。...Electron 与 NW.js说到 Node.js 的桌面应用,基本上大家都会知道 Electron 和 NW.js。...例如 VsCode 就是基于 Electron 写的,而小程序开发工具则是基于 NW.js 来开发的。...我们知道,Node.js 和 Chromium 的运行环境不一样,它们的 JavaScript 上下文都有一些特有的全局对象和函数。...那么,Electron 和 NW.js 都分别是怎样管理 Node.js 和 Chromium 的呢?NW.js 内部架构NW.js 是最早的 Node.js 桌面应用框架,架构如图1。
然后笔者又尝试在node.js的环境下执行上述代码,不出意外,可以顺利地直接完成执行并运行恶意文件,因此该exp代码确实是在node.js环境下触发的,但是即使我们先忽略掉如何通过x-powered-by...3.该漏洞扫描器在某个页面中将获取到的版本信息未经过滤及其他处理直接显示在nw.js框架编写的页面中。...4.由于nw.js框架编写的页面会直接触发xss,导致xss payload中的onerror方法触发,加载远程的node.js代码。...App", "width": 800, "height": 600 }}到此整个demo的编写就已经完成,后续可以通过编译运行或在线运行测试该demo的实际效果,我这里通过一个上线木马来测试对应的效果...运行后的前端界面:可以看到页面中加载失败的图片为触发XSS的特征,然后我们可以发现主机成功上线到服务器。
---- 一、使用 NW.js 打包 NW.js基于Chromium和Node.js。它允许您直接从浏览器调用Node.js代码和模块,并在应用程序中使用Web技术。...官网:NW.js 官网 优点:免开发、门槛低、体积小 1.1 下载、解压 NW.js 1.1.1 下载 NW.js 进入 NW.js 官网,点击下载最新版,如下图所示。...1.1.2 解压 NW.js 接着我们将压缩包解压到指定目录,解压成功后如下图所示。...copy /b nw.exe+nw.nw app.exe 运行结果如下图所示。 运行后,回到之前的目录,可以发现多了个 app.exe 文件,如下图所示。 双击即可打开,如下图所示。...如果你没有云服务器,也可以在电脑本地运行,执行以下cmd 命令。
找了一圈发现NW.js挺容易上手,分享给大家。...NW.js 官网https://nwjs.io/ 1.下载适合当前版本的js 【这里下载的SDK版本,方便后续调试】 2.解压到本地 3.构建自己的project index.html...4.把项目放到nw.js解压后的同一目录下 5.命令进入到当前文件夹 输入 nw myapp 也可以直接把项目拖到nw.exe 6.将应用打包成app.nw文件,进入myapp文件夹中
1、下载nw.js https://nwjs.io/ 最好下载sdk版本。 2、解压打开安装包 下载完之后,解压打开 图中的「app文件夹」是我自己创建的,你也需要自己创建一个,里面放你项目文件。...show:当程序一点击运行的时候是否直接把窗口显示出来。 title:窗口标题,当入口页面的title标签为空的时候就使用这个属性来当做窗口的标题。 toolbar:是否启用工具条。...下载链接打开它,选中「app.exe」然后将你刚才下好的nw.js里原始文件(除去你自己生成和创建的文件或文件夹)。
1、下载nw.js https://nwjs.io/ 最好下载sdk版本。 2、解压打开安装包 下载完之后,解压打开 图中的app文件夹是我自己创建的,你也需要自己创建一个,里面放你项目文件。...show:当程序一点击运行的时候是否直接把窗口显示出来。 title:窗口标题,当入口页面的title标签为空的时候就使用这个属性来当做窗口的标题。 toolbar:是否启用工具条。...下载链接打开它,选中app.exe然后将你刚才下好的nw.js里原始文件(除去你自己生成和创建的文件或文件夹)。
对于开发者而言,可以做到一次开发、多端复用,一套代码就能够运行在不同设备上,这在很大程度上能够降低研发成本,同时能够在产品效能上做到快速验证和快速上线。...比如:1)NW.js;2)Electron;3)Flutter for Desktop;4)Tauri;5)Wails;4.2NW.jsNW.js 官网描述:NW.js概况:1)官网:https://nwjs.io...NW.js(node-webkit )是一个基于 Chromium 和 Node.js 的 Web 运行环境,可直接在 DOM 中调用 Node.js 模块,并可使用任何现有的 Web 技术来编写本地应用...类似于 NW.js,表面上,它们似乎非常相似,但是这两个项目有本质上的区别,使得 Electron 和 NW.js 成为两个完全独立的产品。...10、本文小结NW.js 的时代已经过去,考虑 NW.js 的可以优先 Electron。Tauri 表现不错,前景较好。
换句话说,网页只能运行在浏览器中,无法直接运行在操作系统中,因此网页应用程序也就无法访问文件操作系统。...Electron不是一个复杂的框架 - 它是一个简单的运行时框架。与您从命令行使用Node的方式类似,您可以使用Electron命令行工具运行程序。...NW.js Electron与另一个名为NW.js(以前称为node-webkit)的项目类似。这两者有很多共同之处。...表1.1 Electron和NW.js之间的主要区别的比较 Electron NW.js 平台 支持官方最新的Chromium版本 Chromium分支版本 进程模型 分离进程模型 共享Node进程...电子还包括自动下载更新和错误崩溃上报,NW.js不支持。 NW.js应用程序从HTML页面启动,每个浏览器窗口共享一个Node 进程。如果打开多个窗口,它们都共享同一个Node进程。
说到 node.js 的 GUI 开发方案,首先想到的就是 electron 和 nw.js。但除了它们之外,是否存在其它更轻量级的技术方案可供选择呢?...在这个基础上,再加上个方便操作的 GUI 就好了,于是首先想到的方案自然就是 electron 或者 nw.js。...但打包了 Chromium 内核和 node.js 环境后,如今的 electron 和 nw.js 动不动就上百MB的大小,用来开发这样的小工具实在是不划算。...项目地址:https://github.com/parro-it/libui-node react-x11 react-x11 刚刚起步,目前可用组件只有 window,且需要运行在 X Window
一次编译后,得到中间文件,通过平台或虚机完成二次加载编译或解释运行。运行效率低于原生编译,但平台优化后,其效率也是比较可观的。就开发速度方面,比原生编译技术要快一些。例如: a....在这之前,Zhao主要进行node-webkit(现在叫nw.js)的开发工作。...的功能,nw.js 则直接使用了 Chromium本身。...,这个框架作者还为一本中文译名叫《跨平台桌面应用开发:基于Electron与NW.js》的书写了序(见下图)。...4)那在 Electron 和 NW.js 之间,为啥选择前者? 我没怎么用过 NW.js,但当时在没有时间深入体验的实际情况下,我选择生态好的。
领取专属 10元无门槛券
手把手带您无忧上云