有人用javascript写桌面程序的吗

有人用javascript写桌面程序的吗,第1张

通过HTML、CSS、JavaScript来编写本地应用程序

简单地说就是一个本地客户端应用程序使用一个内置的浏览器内核渲染前端界面,另一方面还可以调用本地系统级API,实现本地应用程序的各种功能。

使用该技术的部分产品:

网易云音乐PC客户端

有道词典PC客户端 (基于heX)

Atom文本编辑器 (基于Electron)

Visual Studio Code编辑器 (基于Electron)

相关技术

C++ / CEF

https://bitbucket.org/chromiumembedded/cef

CEF (Chromium Embedded Framework)

谷歌浏览器嵌入式框架,即谷歌浏览器内核,配合C++使用。

Electron

http://electron.atom.io/

Electron基于Node.js,使用javascript编程。

个人对Node.js的理解

Node.js是一个JavaScript 解释器,是类似Python的东西

Node.js使用JavaScript语言,Python使用Python语言

Node.js常用于编写Web服务器(使用http等模块)

Python也有类似的框架,比如Django

NW.js

NW.js 原名 node-webkit

基于 Chromium 和 Node.js

heX

heX是有道发起的开源项目

基于开源项目 CEF,它内部整合了开源项目 Chromium 及 Node.JS

一般来说,html5的功能展示是依赖于浏览器的。浏览器提供了多少可调用的接口,使用html5就可以实现多少功能。但是浏览器一般不会实现html5完全访问或控制本地资源的权限,所以实现的功能还是有限的。\x0d\x0a 不过目前也有许多通过html5+css+js甚至结合其他语言实现的桌面程序。例如目前可以采用的方案举几个例子:\x0d\x0a1、Node-WebKit\x0d\x0a1.1 Node-WebKit能把HTML5应用打包成本地桌面应用,在Windows、Linux或Mac平台上,不需要其它依赖就可以独立运行你的HTML5应用。\x0d\x0a1.2支持Node.js。可以使用Node.js的所有模块来开发app或游戏。不仅可以使用Node.js原生的模块,而且可以使用第三方的node.js模块。\x0d\x0a2、heX 是网易有道团队的一个开源项目,允许采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案。这个项目目前处于停滞状态。\x0d\x0a3、自己开发一下基于浏览器框架的应用。例如基于谷歌浏览器核心,前端使用浏览器渲染功能结合html5+css+js,后端使用c++开发。

上次我们提到了业界大名鼎鼎的Qt桌面级应用开发框架,不过Qt是基于c++进行开发的,c++的开发模式也并不是十分适用于现代这种短平快的软件开发模式,相比之下,electron是基于nodejs和 Chromium使用javascript,html和css来开发桌面应用的框架。

Electron的原理很简单,基本上就是使用我们常见的chrome浏览器的内核为基础通过nodejs和底层 *** 作系统进行 *** 作交互。

必要的准备内容不多,不管你是windows,linux还是mac只要安装最新版本的nodejs就可以了,除此之外确保你有npm和git

然后打开命令提示符输入

安装依赖的过程可能比较久,npm会自动安装一些windows的编译包。

安装成功并且运行了会提示入下图

实际上就是个chrome浏览器的壳子把html和css以及js绘制的UI显示出来,右边的debug工具都是和chrome里一模一样的。

当然我们也可以关闭它。显示的时候看起来就更加像是一个浏览器了。

electron的目录结构如下。

package.json是我们常见的npm包管理软件,这里主要是一些APP的应用信息,包的管理和开发用的脚本命令。在这里我们还要定义好main为main.js如果没有定义的话会默认启动index.js。这里和nodejs默认的情况都差不多。

main.js是应用程序的主进程文件,这个主进程文件就是用来创建应用程序窗口和处理系统事件使用的文件。它看起来大概是下面这个样子。

这个文件显示主界面的信息内容。

就是图中红色箭头指示的位置。

electron想必qt开发起来就容易多了,因为我们可以通过html,css和javascript这样简单容易的语言开发跨平台的桌面应用,因为读取的是html文件,这还意味着我们可以更容易的在服务端实时更新数据内容。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7768097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存