2.第一个Electron程序

这篇具有很好参考价值的文章主要介绍了2.第一个Electron程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

原文以及系列文章后续请参考:第一个Electron程序文章来源地址https://www.toymoban.com/news/detail-827729.html

上一章我们完成了Electron的环境搭建,本章就开始详解如何使用Electron开发一个完整的Electron桌面端程序。

注意开发环境,个人推荐使用vscode编辑器,网上可以找到很多教程,我这里不再赘述。

同时使用Electron开发是需要你有基本的前端开发经验的,比如html、js、css等,这些比较基础的东西我在文章中不会讲解太多,不会的可以先参考本站的另外三篇文章:

  • HTML
  • CSS
  • JavaScript

二、基本运行结构

上一章提到了,我们在package.js文件中看到了一个叫做main的项,它的值默认为index.js,意思就是将这个文件作为我们软件运行的入口文件。

所以现在我们主要需要自己创建两个文件:

  • index.js:软件运行的入口文件。
  • index.html:这就是我们软件的主页面,用html代码完成。

首先是index.html文件,代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello from Electron renderer!</title>
  </head>
  <body>
    <h1>Hello from Electron renderer!</h1>
  </body>
</html>

这只是一个最基本的html代码,当然你也可以随意修改。

有了页面代码后,就是我们的重头戏,也就是index.js中的代码了。

const { app, BrowserWindow } = require('electron')
app.whenReady().then(() => {
    const win = new BrowserWindow({
        width: 800,
        height: 600
    });
    win.loadFile('index.html');
})

此刻整个项目如下:

2.第一个Electron程序,electron,javascript,前端

这些代码的含义会在后面解释,现在我们就可以来到控制台当前文件夹下运行命令npm run start了:

2.第一个Electron程序,electron,javascript,前端

于是你就能看到,我们居然就这样写好了一个软件,而且看起来还功能俱全的感觉!

是不是相当的简单?甚至有些难以置信的感觉?

毕竟如果是使用其它框架开发,怎么也难以用如此简略的步骤就完成一个功能俱全的程序啊!

三、代码详解

程序能运行起来了,那就说明我们写的代码确实没有问题,那么现在就可以来讲解一下这些代码的含义。

index.html文件就不用多说了,因为它真的就仅仅只是一个html的网页代码而已。

主要还是看到我们index.js这个文件,因为前面说了,它是整个软件的入口文件,程序启动后,它是第一个被执行的。

它的第一行就是从electron模块中引入我们需要的两个属性:

const { app, BrowserWindow } = require('electron')

electron是什么?不就是前一章我们安装的Electron库嘛!而且你可以在node_modules文件夹中找到它。

require关键字的作用就是引入指定的模块、库中的内容,它只能在node.js环境下使用,在浏览器中是无法使用的。

然后前面的const { app, BrowserWindow },意思就是从这个模块中引出两个不可变的模块、属性、对象、函数等等内容。

不可变也就是const关键字,而app则是electron框架预定义好应用程序实例,简单来说,这个app对象,就代表了我们当前这整个应用程序。

后面我们也可以通过该对象来任意控制整个应用程序,比如退出应用等函数,就在它的身上。

BrowserWindow 则可以用来创建一个窗口,存放我们页面。

比如前面的index.html就是一个页面,但需要用窗口来存放。

有了app这个应用程序实例后,我们就能够在程序不同的情况下执行不同的代码。

而最常见的就是在程序一切准备就绪的时候,开始创建窗口:

app.whenReady().then(() => {
	//创建窗口
})

它上面的whenReady()函数,就是当程序初始化就绪后,执行指定的函数。

但由于js是单线程程序,不可能一直卡在这里等你应用程序初始化完毕,所以这个函数是异步的。

异步的内容请参考网上其它文章,或者查询本站其它相关的教程。

因此当调用这个函数后,它会直接返回一个管理异步的对象Promise

但我们为了代码简洁,一般不会写这个对象,而是直接调用这个对象身上的函数then

它的意思就是,当这个事件完成之后,就会立马执行then函数中的内容。

这也就有了先后,即确实是等程序初始化后,才会执行then函数中的内容。

then函数可以传递一些回调函数进去,比如这里,就传入了一个箭头函数()=>{}

然后我们就可以在这个箭头中执行创建窗口的代码,等程序就绪后,就会开始执行创建。

这些都是js中的基础内容,但又非常重要,不理解的话你就能以看懂它的运行逻辑,所以这里多说了几句,后面不会再重复赘述。

然后在箭头函数中,我们就可以使用从electron中引入的BrowserWindow类创建一个窗口对象:

const win = new BrowserWindow({
    width: 800,
    height: 600
});

这里使用的new关键字创建对象,它的参数就是我们这个窗口的属性,属性非常之多,可以点击BrowserWindow查看。

我这里只用到了其中的宽高属性,即设置这个窗口初始化时的宽与高。

创建成功后,这个窗口就会被保存到前面的常量win上。

有了窗口,就可以加载页面了,直接调用它身上的loadFile函数加载我们写好的页面:

win.loadFile('index.html');

至此,我们的程序就运行起来了!

不过这还非常简略,所以后面的章节我会带着大家一步一步丰富它的内容。

四、打包

仅仅这样写完还不够,毕竟写出来的软件是给别人用的。

但你不能每次都把这么一大堆东西都发送给别人吧?而且还要安装各种开发环境?

这一过程就叫做打包(或者官方也称其为分发,意思也差不多)。

其目的就是将运行这个程序所需要的所有东西放在一起,别人如果想要用,那么就直接发送打包好的程序就行了,也就是大家常见的点击安装,

打包的工具、方式不只一种,官方推荐使用Electron Forge

简单来说就是,在项目根目录下使以下命令:

npm install --save-dev @electron-forge/cli
npx electron-forge import

第一行代码是安装这个工具,第二行代码是导入这个工具。

npxnpm弱一点,它仅仅是用来执行命令的,而不能安装包,而npm既可以安装包,也可以执行命令,且这两者都是安装node后自带的命令,两者具体有什么区别可以自行上网搜一搜。

如果嫌npm安装慢,就换成上一章提到的cnpm,将命令换为:

cnpm install --save-dev @electron-forge/cli

然后下面那个npx命令同样需要下载一些开源包,由于这些包很多都在外网,也容易下载失败或者出现错误。

所以你可能还需要更换一下国内的包源。

方法是在当前用户目录下找到一个叫.npmrc的文件,用记事本打开它,写入下面的文本:

ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/

如果没有这个文件,那就自己创建一个,如果有,那就将上面的内容单独放在一行即可:

2.第一个Electron程序,electron,javascript,前端

注意,此时要先关闭以前的控制台后再重新打开控制台运行命令:

npx electron-forge import

重新打开的目的是刷新该终端的配置项,此时一般就可以用了。

当然,如果你能上外网,那么上面这些步骤就都是多余的,直接按官方来即可,没这么多的麻烦。

安装完成后的界面:

2.第一个Electron程序,electron,javascript,前端

然后我们就可以运行下面的命令开始打包了:

npx electron-forge publish

打包完成后,你就能在当前目录的:out\my-electron-app-win32-x64中找到可执行文件了。

2.第一个Electron程序,electron,javascript,前端

如果要将软件发给别人用,你可以在另外一个文件夹out\make\squirrel.windows\x64下找到一个.exe可执行文件。

2.第一个Electron程序,electron,javascript,前端

这就是该软件的安装包,可以直接发送给别人安装使用。

原文以及系列文章后续请参考:第一个Electron程序

到了这里,关于2.第一个Electron程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 创建第一个electron项目

    创建package.json 创建electron 创建程序主入口文件 main.js,electron分为主进程和渲染进程,main,js也可以理解为electron项目的主进程,在主进程中是node环境不可以写操作dom方法,在渲染进程中是浏览器环境 可以写操作dom的一些方法 使用nodemon快速启动项目 package.json文件里面的配置 我这里

    2024年02月03日
    浏览(37)
  • 前端(Electron Nodejs)如何读取本地配置文件

    使用electron封装了前端界面之后,最终打包为一个客户端(exe)。但是,最近项目组内做CS(c++开发)的,想把所有的配置都放进安装目录的配置文件中(比如config.json)。这做法,对于纯前端而言有点难以接收。 第一,纯前端不允许读取本地文件。就这一条,直接封死所有的

    2024年02月16日
    浏览(48)
  • 【electron】Puppeteer 和 Electron 共用同一个Chrome 或 Chromium浏览器二进制文件

    将 Puppeteer 的可执行路径设置为 Electron 的可执行路径来实现这一点 以下是一个示例代码,展示了如何在 Puppeteer 中使用 Electron 的浏览器二进制文件: 在上述代码中,你需要将 executablePath 变量设置为 Electron 的可执行路径。然后,在启动 Puppeteer 时,将 executablePath 设置为 laun

    2024年02月10日
    浏览(48)
  • 从零搭建一个react + electron项目

    最近打算搭建一个react + electron的项目,发现并不是那么傻瓜式 于是记录一下自己的实践步骤 通过create-react-app 创建react项目 安装electron依赖 暴露react项目的配置文件 (这一步看自己需求,我需要改目录结构) 在package.json中有一个eject命令,直接执行就可以,执行前要保证没

    2024年02月14日
    浏览(35)
  • 前端桌面应用开发实践:Electron入门指南

    随着互联网的快速发展,前端开发不再局限于网页应用,而是逐渐涉及到桌面应用的开发。Electron作为一种流行的前端桌面应用开发框架,为开发者提供了一种快速构建跨平台桌面应用的方式。本文将介绍Electron的基本概念和使用方法,并通过一个简单的示例来说明其开发实践

    2024年02月11日
    浏览(46)
  • 纯前端ELECTRON+VUE+FFMPEG实现多路播放RTSP流

    近期有项目需求前端播放rtsp视频流,项目是由electron+vue3搭建,没有后端,因此需要在前端实现解析rtsp流及播放,经过多方考察最后选用了ffmpeg+jsmpeg方案实现,具体实现是参考了@牧也の旅行 大佬的这篇文章 原文地址 实现的,感谢@牧也の旅行 一直在回复我的各种小白问题,

    2024年02月04日
    浏览(36)
  • 银河麒麟v10安装前端环境(Node、vue、Electron+vite)

    此帖子所提到的所有依赖包都是基于银河麒麟v10真机的arm架构包,如果是在windows上的虚拟机上 把依赖包换成x64的包即可,方法步骤都是一样 一.node安装 原始方法安装(建议用第二种nvm方法,因为更简单): 1.1nodejs官网下载基于arm架构的包 1.1.1或者打开终端使用wget方式安装

    2024年02月02日
    浏览(43)
  • 我用nodejs和electron实现了一个简单的聊天软件-----chat 开源

    🔗https://www.bilibili.com/video/BV1Fg4y1u76d/ 希望观众老爷给个免费的三连支持一下新人up主 翎 是基于 electron(vue2) 和 nodejs 实现的简单聊天软件,其中用 websocket 和 http 进行通讯传递,数据库使用了 mysql 数据库,该项目功能简单,界面简洁,适合正在练习 websocket 和 vue 的小白查看代码,代码

    2024年02月12日
    浏览(61)
  • eletron+react+antd+node开发桌面小程序并打包(electron-packager+electron-builder)

    首先罗列一下项目中用到的技术: electron, react,antd, typescript, node,及打包命令:pkg,electron-packager,electron-builder及child_process实现多进程 需求:开发一个桌面应用,左侧展示视频(需要用到node服务进行rtsp转码),右侧一些获取视频流需要的表单数据。 因为从需求到完成小

    2024年02月11日
    浏览(41)
  • Vue3 Vite electron 开发桌面程序

    Electron是一个跨平台的桌面应用程序开发框架,它允许开发人员使用Web技术(如HTML、CSS和JavaScript)构建桌面应用程序,这些应用程序可以在Windows、macOS和Linux等操作系统上运行。 Electron的核心是 Chromium 浏览器内核和 Node.js 运行时环境。 Chromium 内核提供了现代浏览器的功能,

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包