桌面开发 -- NW.js与Electron 如我前面所讲,只要在有原生开发的地方,就会有跨平台开发的技术出现。 同样的现象也出现在桌面开发。...过去,由于Window一家独大,桌面开发也只需要考虑它,因此也没有太多跨平台的需要。...在这种背景下,再加上JavaScript本身发展的能力,使它具备了发展出一种跨平台的桌面开发技术。 因此,跨平台桌面开发技术--NW.js与Electron就出现了。...这一次,前端技术向桌面开发发起了进攻的号角。 突破与挫折 如果我们把眼光扩大到整个技术,我们会发现,没有任何一个技术可以与前端的这种全方位的进攻相比较,也没有第二个技术能做到这个地步。...React Native的现状用一句话来形容就是:前行艰难,后有追兵 NW.js 与 Electron -- 性价比高的解决方案 NW.js与Electron相对而言,处境就好很多了。
这一周继续聊跨平台桌面开发这个事情。 在这篇文章中,我暂时会放下Electron与WebView2的一个对比,而聊一聊跨平台这个对于程序员群体来说不陌生的词。...桌面开发 桌面操作系统很长一段时间一直是Windows一家独大,所以桌面开发一直是Windows独占,直至现在为止,很多专业级的软件仍然是Windows独占的。...所以,在桌面开发领域,跨平台的需求也越来越高。 这也是Electron及早期的NW.js能迅速发展起来并得到非常广应用的原因所在。...这个问题在跨平台桌面开发中也是类似,跨平台桌面开发技术也不是Electron最开始出现,比如著名的QT很早就有了,但比起Electron这种使用前端编程技术来说,显然在编程语言的门槛上和程序员群体上都存在困难...Electron是先行者(当然,严格说来,NW.js出现的更早,但今天它的流行度已远远落后于Electron了),而WebView2则是后来者。 那做为后来者的WebView2究竟做了哪些改进?
说到 node.js 的 GUI 开发方案,首先想到的就是 electron 和 nw.js。但除了它们之外,是否存在其它更轻量级的技术方案可供选择呢?...在这个基础上,再加上个方便操作的 GUI 就好了,于是首先想到的方案自然就是 electron 或者 nw.js。...但打包了 Chromium 内核和 node.js 环境后,如今的 electron 和 nw.js 动不动就上百MB的大小,用来开发这样的小工具实在是不划算。...这么说来,近几年桌面开发似乎越来越不温不火,大家的关注中心似乎都转移到了移动端上。
nw.js如何处理拖放操作 其实拖放(drag-drop)操作是Html5的功能,不是nw.js的内置API,那么我们采用Html5应用一般的处理方法就可以了。...nw.js会按照chrome浏览器默认处理文件的方式来处理拖放的文件,能显示的会直接显示,不能显示的会变成资源下载。 这肯定不是桌面应用想要的效果,那么Html5是如何处理拖放的呢?
准备工作 Nginx下载 http://nginx.org/en/download.html 下载后放在项目的根目录下 文件夹名设置为Nginx 把配置中的默认...
默认情况下,nw.js发布的nw.exe文件请求的是普通权限,当我们的应用需要访问一些特殊目录或者注册表等,就需要程序启动的时候以管理员权限运行。...首先我们找一款使用nw.js开发的软件,这里我推荐AxeSlide,首先去下载软件,安装。
本次,我与大家聊一聊,跨平台桌面开发,究竟是应该选Electron还是WebView2? 这是上篇。...这个系列主要是讨论Electron以及Webview2,跨平台桌面开发当然还有QT,React Native Desktop,Jetpack compose Desktop以及Tauri等选择,这些技术都有可圈可点之处
NW.js的用途 NW.js 基于 Chromium 和 Node.js,从而可以在桌面app中使用浏览器开发技术并直接调用 Node.js 资源,甚至将一个web应用打包到本地也轻而易举。...安装NW.js 可以从官网下载; 推荐在开发时下载是sdk版,以使用DevTools 非sdk版也应同时下载,在发布时使用 写一个 Hello World!...title> Hello NWJS~ == 右键单击可看到菜单 == //此处演示调用`NW.js...You are running on ' + os.platform() + ''; 运行NW.js.../path/to/nw 是 NW.js 的二进制运行文件; 在Windows上是nw.exe,在Linux上是nw,而在Mac则是nwjs.app/Contents/MacOS/nwjs Linux和Mac
在桌面端的开发中,键盘快捷键是非常常见而必要的,比如 Ctrl + F 搜索, Ctrl + C 复制等。Flutter 既然可以开发桌面端应用,那必然要提供自...
这是这个话题的最终篇,前两篇为: 1.跨平台桌面开发,Electron还是WebView2 (上篇)2.跨平台桌面开发,Electron还是WebView2 (中篇) 接下来,我会分别从这两个技术的相似之处以及不同之处来详细对比说明...那对于跨平台桌面开发,如果你想找到一个性价比非常之高的解决方案,是Electron还是WebView2,心中应该有自己的答案了吧。...如果你问我,我的观点就是: •Electron仍然是当下及未来一段时间内,跨平台桌面开发性价比最高的选择•WebView2则是Windows原生程序开发团队或开发者应该关注的技术,基于它能做出类似移动端的...(大公司,有钱,土豪请自觉将自己排除在外) 远方以及更远 当然,我在这篇文章中,主要还是围绕前端开发技术下的跨平台桌面开发。...而说到跨平台桌面开发,除了基于前端技术的这些解决方案之外,我们似乎还可以把目光放的更长远。 一些还没有成熟,但非常具有潜力的新技术已经崭露头角了。
中仅保存极少量信息且会过期),数据持久化(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程序开发中,我们可能在程序启动时做一些加载前逻辑,比如更新等等,那如何实现等待这些逻辑完成后才开始加载index.html呢?
[I] 概述 - NW.js原生界面(Native UI)APIs 要构建一个像样的桌面应用,除了由NodeJS处理底层功能,以及由Webkit来应付窗口GUI外,还需要诸如操作窗口、访问剪贴板或隐藏到系统托盘区等和系统图形界面交互的能力...而前面提到的两者,要么无法访问GUI,要么受限于API边界,均无法提供 NW.js Native UI APIs 则在其他JS层的顶部提供了这些完整的功能 1.1 获取nw实例 旧版本中可以用 var...App API - 应用的核心 2.1 打开关联类型的文件 NW.js应用有多种办法打开文件,此处谈论的是打开关联的文件类型;也就是说如果我们开发一个文本编辑器,那么我们希望在系统中右键单击一个txt文件出现的...Window API - 操作NW.js窗口 在NW.js中,Window API 只不过是对DOM中window对象的一层包装,很多(并非所有)方法和属性继承了后者的用法,同时window对象也是 Node.js...在NW.js里,同样的操作只是传递文件路径字符串而已,而非拷贝其内容;同时一些浏览器中的安全限制被解除,并赋予其一些增强的能力,从而使用户体验更接近原生应用
前端技术在桌面端 以NW.js和Electron为代表的前端技术的出现,意味着前端技术现在也出现在的桌面端中了。 它会成为桌面开发的主流吗?...它不会成为桌面开发的主流,但它意味着一个极具性价比的可选方案出现,会越来越多的出现使用这种方案的桌面应用 ?...以NW.js和Electron前端技术为代表的桌面解决方案,是个非常具有性价比的方案,它具有一些独特的优势: 它开发出来的东西是跨平台的,意味着开发一次,支持Window,Linux以及Mac系统 它减少了开发桌面端对开发人员的要求
不错, 这就是今天我要介绍的Tauri Tauri Tauri是基于Rust语言而实现, 支持跨平台的桌面开发框架....这意味着如果使用Tauri, 有时候找不到好的框架 最后 不介意性能和软件体积, 对跨平台桌面开发来说, 仍然是Electron更具性价比. 但如果你想找一个更轻, 更小, 体积更小的跨平台方案.
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...process也是一个在窗口中和Node.js上下文中都可以访问到的全局对象 除了可以访问固有的 process.env.HOME 得到主目录等,还添加了如下属性: process.version['NW.js
最近两年,随着 Atom/VSCode 的火爆,带动了 node webkit 相关模块的爆发,比如 NW.js 和 Electron 等。...随后 npm 发展极为迅猛,跨平台技术也突飞猛进,出现了 NW.js 这样的轻量级跨平台框架,基于 Chromium(Chrome 开源版本) + Node.js,使得 PC 桌面端能够通过 Web 开发技术开发...,最终打包编译成各个平台支持的应用格式,给 PC 桌面开发带来了太多的可能性。...而 Atom 是 GitHub 在 2014 年发布的一款基于 Web 技术构建的文本编辑器,其中 atom-shell,也就是后来的 Electron,是和 NW.js 类似的技术。...演进过程:chrome > Node.js > nw.js > atom(electron) > vs code 在第二阶段里,我们可以看到 PC 桌面端以 Web 开发技术作为核心,以浏览器内核作为跨平台核心
值得一提的是,作者如今在做一款开发者友好型 Java 桌面部署工具(jDeploy),其实他还是希望 Java 可以重拾风采,再度变得对桌面开发具有吸引力。...所以我心里有了答案:至少在当时,Java 桌面开发已经是死路一条,唯一的用处就是写点小程序——问题是跟 Flash 这类更轻、更快的技术相比,Java Applet 的优势其实也已经不明显了。...Java 桌面开发者们又跑到哪里去了?我猜大部分开发者可能转向了服务器端,而继续坚守客户端的开发者也许是转向了 Web 或者本地开发方面。 如果您也经历过这段历史,不妨在评论中聊聊自己的体会和回忆。
同样基于 Chromium + Node.js 的,还有 NW.js,我们先来看看它们之间有什么不一样吧。...Electron 与 NW.js说到 Node.js 的桌面应用,基本上大家都会知道 Electron 和 NW.js。...例如 VsCode 就是基于 Electron 写的,而小程序开发工具则是基于 NW.js 来开发的。...那么,Electron 和 NW.js 都分别是怎样管理 Node.js 和 Chromium 的呢?NW.js 内部架构NW.js 是最早的 Node.js 桌面应用框架,架构如图1。...在 NW.js 中,将 Node.js 和 Chromium 整合在一起使用,其中做了几件事情,我们来分别看下。
在这里贴一下nw的官网首页和下载截图) image image Github上nw.js有两万多Star和接近3000的Fork,说明它已经相当成熟。...并且在Github项目的最后面,显示Intel有赞助这个项目,看起来很牛的样子 nw.js也是一个使用前端技术(html、css、JavaScript)来构建pc端程序的一个框架。...nw.js就是使HTML, CSS, JavaScript写的原本在浏览器上运行的程序,也可以在桌面端运行。...nw.js是和node.js一样是单进程的,electron改成了双进程,技术实现改变。 electron的优点:开源的核心扩展比较容易,界面定制性强,原则上只要是Web能做的他都能做。...从license上来看,Electron是Github的,NW.js则是Intel。 nw 在mac上只能构建mac的应用 ,windows下只能构建windows的。
领取专属 10元无门槛券
手把手带您无忧上云