🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
既然说Electron.js能够开发桌面应用程序,那起码我们学习过程中最基本的就是能够开发一个显示`Helle World`的桌面应用程序吧。那我们直接进入教程吧: - 在`D盘`(当然其他盘也可以)创建一个`electronjs`的目录,用做Electron.js开发的项目的工作空间。 - 在`electronjs`目录下,创建一个`Hello Electron`的文件夹。 - 在`Hello Electron`下面创建三个文件: - `package.json` 这个文件主要是配置应用程序基本信息和启动文件 - `app.js` 应用程序的入口,也就是上面说的启动文件 - `index.html` 一个输出Hello World的HTML页面。 - 在 `package.json`中,键入以下代码,如: ``` { "name":"My First Electron App", // 应用程序名称 "version":"0.0.1", // 应用程序版本 "main":"app.js" // 应用程序入口文件 } ``` - 在 `app.js`中键入下面代码,如: ``` // 载入electron模块 const electron=require("electron"); // 创建应用程序对象 const app=electron.app; // 创建一个浏览器窗口,主要用来加载HTML页面 const BrowserWindow=electron.BrowserWindow; // 声明一个BrowserWindow对象实例 let mainWindow; 定义一个创建浏览器窗口的方法 function createWindow(){ // 创建一个浏览器窗口对象,并指定窗口的大小 mainWindow=new BrowserWindow({ width:300, height:300 }); // 通过浏览器窗口对象加载index.html文件,同时也是可以加载一个互联网地址的 mainWindow.loadURL('file://'+__dirname+'/index.html'); // 同时也可以简化成:mainWindow.loadURL('./index.html'); // 监听浏览器窗口对象是否关闭,关闭之后直接将mainWindow指向空引用,也就是回收对象内存空间 mainWindow.on("closed",function(){ mainWindow = null; }); } // 监听应用程序对象是否初始化完成,初始化完成之后即可创建浏览器窗口 app.on("ready",createWindow); // 监听应用程序对象中的所有浏览器窗口对象是否全部被关闭,如果全部被关闭,则退出整个应用程序。该 app.on("window-all-closed",function(){ // 判断当前操作系统是否是window系统,因为这个事件只作用在window系统中 if(process.platform!="darwin"){ // 退出整个应用程序 app.quit(); } }); // 监听应用程序图标被通过点或者没有任何浏览器窗口显示在桌面上,那我们应该重新创建并打开浏览器窗口,避免Mac OS X系统回收或者销毁浏览器窗口 app.on("activate",function(){ if(mainWindow===null){ createWindow(); } }); ``` - 在 `index.html`中键入下面代码,如: ``` <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8" /> <title>Hello World</title> </head> <body> Hello World! </body> </html> ``` - 到处位置我们就已经完成基本的初始化了,我们只需要通过命令行输入:`d:`回车,进入`D盘`,然后再输入`cd electronjs/Hello Electron`进入当前的`Hello Electron`文件夹中。 - 然后输入`electron .`,神奇的事情就发生了。你可要看到下图所示: ![](https://box.kancloud.cn/2016-05-18_573b765701f17.png) 到这里,一个简单的windows应用程序就已经开发完毕。 ----- 如果你觉得此教程对你有价值,并且愿意让她继续写下去,你可以资助这个教程的编写,为作者加油打气。 ![](https://box.kancloud.cn/2016-05-18_573b773d890ed.png)