宝哥软件园

使用JavaScript开发跨平台桌面应用程序

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

任何可以用JavaScript编写的应用程序最终都会用JavaScript编写。-阿特伍德法律

阿特伍德定律是杰夫阿特伍德在2007年提出的:“任何可以用JavaScript编写的应用程序,甚至都会用JavaScript编写”。据说这在当时只是一个笑话。然而,这个笑话似乎已经逐渐成为现实。从各种华丽的网页框架,到强大的库,再到机器学习和服务器开发,JavaScript出现了。有些语言也是从JavaScript派生出来的,比如TypeScript。而且用JavaScript做游戏变得很方便,所以可以用CocosCreator。随着Html5的出现,JavaScript在网页中的辅助地位提升到了主位,nodejs的出现让其实现了所谓的“全栈”开发,现在JavaScript甚至可以作为手机应用。然而,对移动、浏览器和服务器有需求,对桌面应用也有需求。可以用JavaScript开发跨平台应用吗?答案是:是的。用JavaScript可以方便地使用Electron开发桌面应用程序。可以看到很多著名的程序都是由它直接或者间接开发的,比如Atom、VSCode等等。

需要注意的是,目前用Electron开发桌面应用存在一定的局限性。首先,我们不能调用复杂的系统API(或者不能直接调用),导致我们无法开发更复杂的企业应用。其次,它的性能仍然无法与本机应用程序相媲美。我们可以认为电子是一个带浏览器外壳的包装盒,它给了我们读写文件的能力。我们开发了一个好的web应用程序,在调试后用它来打包,并在我们的web应用程序中添加了一个浏览器内核。这样,我们的js代码就可以脱离传统的浏览器模式,独立运行。但是和传统的浏览器模式是一样的,所以在有高性能需求的时候,还是需要用C、Java等开发。然而,大多数应用根本不需要这么高的性能要求,所以用electronic开发没有问题。接下来,我们尝试用Electron从零开始一步一步开发Windows桌面应用。当然,这个方法也适用于Mac和Linux。

首先我们进入电子:https://electron.atom.io/.的官网,进入后发现都是英文的。没关系。其实大部分都可以忽略。让我们直接进入首页:

如图所示,官方的安装方式是git和npm,但是我们不需要git。然而,国家预防机制是必要的。Npm是nodejs的一个包管理工具。新版本的nodejs集成了npm,安装后直接附着在nodejs上。但是一些老版本的nodejs或者从一些非官方的地方下载的不可靠的nodejs可能没有npm,所以我们在使用之前一定要安装nodejs和npm。网上有很多教程,这里就不演示了。需要注意的是,在第三个命令npm install npm start中,我们只能进入npm install,因为它附带的指令很可能会导致控制台“死机”,一直卡着,无法成功安装Electron。因此,我们只需要输入我们指定的目录,然后执行以下命令(这些命令是所有系统通用的):

这样,我们安装了电子。在文件夹中:

打开时,文件的目录结构如下:

目录看似复杂,其实我们甚至可以忽略这些文件!Main.js可以等效于我们的配置文件,其中包含一些配置信息。默认情况下,我们的应用程序将直接打开这个目录中的index.html。我们可以通过修改main.js Package.json中的参数来更改条目文件,这也很有用,后面会讨论。

首先,我们可以使用electron.exe直接运行应用程序。在我的目录中,electron.exe位于目录e: 电子快速启动节点模块电子 dist中。我们可以使用electron.exe rootpath的命令格式直接运行我们的应用程序,root path代表您想要运行的项目目录。例如,我用three.js编写的应用程序的目录是E:app。

我们在控制台输入命令:

效果:

它确实作为桌面应用程序运行。然而,我们希望我们的应用程序直接以。exe和。而不是让我们的用户手动输入命令来启动应用程序。如果你看看官方的文件,你会发现官方给出的包装方法还是有一些漏洞的。如果处理不好,你会被抓住的。因此,我们使用更方便的电子包装机。Github链接在这里:https://github.com/electron-userland/electron-packager.首先,我们应该按照教程中输入的说明进行安装。同样,这个命令在Linux、Mac和Windows上也很常见。

安装方法与电子相同。从git下载并安装。需要注意的是,我们可以执行上图中两条指令中的一条。建议执行第二个,因为第二个是全局安装。安装后,我们可以直接在控制台上执行电子打包器命令,这大大提高了我们的效率。

安装后,我们开始打包。首先,将我们的项目目录复制到我们之前安装的电子目录中:

由于我们的应用门户文件是app下的CG1.html,我们还需要打开main.js来配置门户文件:

然后,打开package.json文件并配置参数。

这里只配置了name参数,因为name参数与我们打包后生成的应用程序名称相关。然后,通过控制台进入我们的电子目录(即带有main.js和package.json的目录)。

在控制台执行以下命令:

不要错过。还有一个“.”,这意味着当前目录。事实上,如果电子包装机安装在全球,我们可以改变。一条任意的道路。因为这个命令可以自动检测当前的计算机操作系统以及是32位还是64位,所以我们可以省略一些参数。但是,如果你想生成具有可定制平台的软件,你需要带一些参数,这些参数在其项目的github中有详细的给出。我相信如果你有这个需求,得到这些参数应该不在话下。等一会儿,包就完成了。我们可以看到在文件夹下有一个额外的名为CG1-win32-x64的文件夹。打开后,点击CG1.exe打开应用程序,可以作为发布版本提供给用户!

最后,推荐电子的中文教程:https://www.w3cschool.cn/electronmanual/p9al1qkx.html

以上关于使用JavaScript开发跨平台桌面应用的详细说明,都是边肖分享给大家的内容,希望能给大家一个参考和支持。

更多资讯
游戏推荐
更多+