Electron[3] 基础配置准备和Electron入门案例

1 背景

上一篇文章已经分享了,如何准备Electron的基础环境了。但是博客刚发才一天,就发现有人问问题了。经过实践发现,严格按照作者的博客教程走是不会有问题的,其中包括安装的环境版本等都要一致。因为昨天发的博客,今天我发现,Electron就已经从27.0.2升级到27.0.3了。

2 package.json配置

配置main属性,main属性表示Electron的主程序的入口(Electron里头区分主程序渲染进程,简单理解:主程序就是Electron[负责跟操作系统交互的程序],渲染进程就是我们常规的前端页面程序了)。笔者配置如下:

  "main": "main.js",

表示主程序的入口文件为跟package.json一个层级的main.js文件。所以这个时候你就可以立马创建一个空的main.js了,如下:

2.1 启动命令配置

检查package.json的scripts节点是否已经配置了如下的启动命令:

  "scripts": {
    "start": "electron .",

 如果有,就忽略,如果没有的话,配置下,待会运行项目依赖这个命令行。

3 main.js编写

主程序,需要包含桌面应用的入口,也就是我们前端界面的index.html。下面是一个最简单的main.js案例:

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

	/**
	 * 创建窗口
	 */
	function createWindow () {
	  const mainWindow = new BrowserWindow({
	    width: 800,
	    height: 600
	  })
	
	  // 窗口全屏
	  // mainWindow.fullScreen = true
	  // 禁止手动调整窗口大小
	  // mainWindow.resizable = false
	  // 加载要打包的html文件 index.html
  	  mainWindow.loadFile('./src/helloWorld.html')
	  // 默认打开调试工具
  	  mainWindow.webContents.openDevTools()
	}
	
	/**
	 * 监听应用状态
	 */
	app.whenReady().then(() => {
	  createWindow()
	
	  app.on('activate', () => {
	    if (BrowserWindow.getAllWindows().length === 0) {
	      createWindow()
	    }
	  })
	})
	
	app.on('window-all-closed', () => {
	  if (process.platform !== 'darwin') {
	    app.quit()
	  }
	})

 上面的案例,可以直接复制到我们刚刚创建的main.js里头。不用做任何的调整,相关的代码块也已经做了注释了。

需要注意的一个就是,我们加载的前端入口路径是:./src/helloWorld.html,因此我们需要在当前项目下面创建src文件夹,并且创建hellowWorld.html文件,如下:

3.1 helloWorld.html编写

helloWorld.html里头的内容就随意了,主要是为了入门案例的演示。大家要是懒得话,可以直接复制下面的代码即可:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello World</title>
</head>
<body>
    <h1>Electron</h1>,您好!
</body>
</html>

4 第一个入门案例运行

vscode的terminal终端上执行如下命令:

npm start

就会看到Electron项目启动了,效果如下:

如上图,效果像打开了F12的浏览器。其中右边的调试窗口是因为我们在main.js里头设置了:

// 默认打开调试工具
mainWindow.webContents.openDevTools()

这个很重要,后面的开发过程要用到,所以我就直接打开了。

好了。最简单的Electron的案例,到此就结束了。开胃菜,不知道是否能够调起大家的胃口,如果可以的话,后面还有加餐菜,大家感兴趣的话,可以继续看下一篇。

下一篇介绍,最简单的Electron桌面应用打包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/122243.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

持续集成交付CICD:Jenkins Pipeline与远程构建触发器

目录 一、实验 1.Jenkins Pipeline本地构建触发器 2.Jenkins Pipeline与远程构建触发器&#xff08;第一种方式&#xff09; 3.Jenkins Pipeline与远程构建触发器&#xff08;第二种方式&#xff09; 4.Jenkins Pipeline与远程构建触发器&#xff08;第三种方式&#xff0…

扬帆起航正当时——远航汽车下线仪式在山西运城成功举办

11月8日&#xff0c;“智赢未来 远航汽车——远航汽车下线仪式”在山西省运城市大运集团新能源生产基地成功举办。运城市委书记丁小强、市长储祥好&#xff0c;以及来自省、市、区各级政府领导&#xff0c;远航汽车供应商代表、客户代表、全国主流媒体&#xff0c;大运集团各级…

用于汽车主驱逆变器的NVVR26A120M1WST、NVVR26A120M1WSS、NVVR26A120M1WSB 1200V、碳化硅(SiC)模块

碳化硅&#xff08;SiC&#xff09;模块 – EliteSiC主驱逆变器功率模块 1200V&#xff0c;半桥&#xff0c;介绍 1、&#xff08;NVVR26A120M1WST&#xff09;功率模块是用于混合动力车&#xff08;HEV&#xff09;和电动车&#xff08;EV&#xff09;主驱逆变器应用的VE-Tra…

YOLOv8教程系列:五、关闭数据增强

YOLOv8教程系列&#xff1a;五、关闭数据增强 在一些特殊情况下&#xff0c;特别是在计算机视觉任务中&#xff0c;如目标检测&#xff0c;图像的颜色扰动可能会对算法的性能和稳定性产生重要影响。在这些情况下&#xff0c;我们可能需要采取一些措施来关闭部分或全部的数据增…

修改iframe生成的pdf的比例

如图想要设置这里的默认比例 在iframe连接后面加上#zoom50即可&#xff0c;50是可以随便设置的&#xff0c;设置多少就是多少比例 <iframe src"name.pdf#zoom50" height"100%" width"100%"></iframe>

U-Mail邮件服务器软件,企业自建邮件服务器的最佳选择

随着网络化办公的发展&#xff0c;电子邮件已经成为企业对外、对内交流的重要渠道之一。然而&#xff0c;随着电子邮件所产生的海量数据&#xff0c;也为企业的运营带来了巨大的风险&#xff0c;数据泄露、黑客攻击、垃圾邮件攻击等等。为了&#xff0c;有效规避这些风险&#…

对称二叉数[简单]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个二叉树的根节点root&#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff…

【Git】Git基础命令操作速记

【Git】Git基础命令操作速记 文章目录 【Git】Git基础命令操作速记1. 初始化1.1 设置用户名和邮箱1.2 初始化仓库 2. 基础命令2.1 add和commit2.2 reset2.3 查看日志2.4 删除/找回本地仓库文件2.5 找回暂存区文件2.6 diff命令(找不同) 3. 分支命令3.1 查看分支3.2 创建分支3.3 …

【Data Grip】打开控制台编写sql语句

这里我从表打开&#xff08;也可以从其他地方打开都行&#xff0c;右键new,出现Query Console 点击即可)控制台&#xff0c;右键表 new 点击query console 在上面编写sql语句 编写完之后 点击绿色三角形运行

github官网打不开或访问慢的解决办法

对国内程序员而言&#xff0c;github官网经常面临打不开或访问慢的问题&#xff0c;今天教你一招非常简单且好用的小技巧&#xff0c;轻松访问github官网。 1、github官网打不开的原因 首选我们说下github官网打不开的原因到底是什么。细心的同学会发现&#xff0c;github偶尔…

Linux-命令行命令

注&#xff1a;[]的内容说明是可选的 1.ls ls [-a -l -h] [Linux路径] >如果没有参数&#xff0c;就展示当前工作目录的内容 > -a&#xff1a;all的意思&#xff0c;即列出所有文件&#xff08;包含隐藏文件/文件夹&#xff09; > -l&#xff1a;以列表形式展示内容&…

访问控制列表

目录 ACL ACL原理 ACL包过滤方式 ACL通用命令 查看ACL表命令 删除整张表命令 接口配置ACL ACL分类 标准ACL 标准ACL的动作与条件 通配符掩码 扩展ACL 扩展ACL的动作与条件 命名ACL 前言 书写方式 ACL 含义&#xff1a;访问控制列表&#xff0c;其是一种包过滤…

四、IPSec NAT穿越

IPSec NAT穿越 1、IPSec NAT穿越2、IPSec穿越NAT的处理3、IKEv2与NAT穿越3.1、NAT-T能力检测3.2、NAT网关发现3.3、NAT穿越的启用3.4、NAT-keepalive 4、IPSec NAT穿越示例&#xff08;网关之间存在NAT设备&#xff09;5、IPSec NAT穿越示例&#xff08;两侧存在NAT设备&#x…

Windows 根据dll生成 lib文件

假设我们现在只有dll,没有lib ,因此有源码但是在Visual Studio 20XX中代码确编译不过去,因为缺少lib文件。 接下来,黄强老师来帮大家演示,如何从dll 反推 lib文件,打开这个工具 第一步,查看一下大概的函数,确认dll有你想要的函数 dumpbin /exports 你的.dll > f…

利用RoboBrowser库和爬虫代理实现微博视频的爬取

技术概述 微博是一个社交媒体平台&#xff0c;用户可以在上面发布和分享各种内容&#xff0c;包括文字、图片、音频和视频。微博视频是微博上的一种重要的内容形式&#xff0c;有时我们可能想要下载微博视频到本地&#xff0c;以便于观看或分析。但是&#xff0c;微博视频并没…

jmeter接口自动化部署jenkins教程

首先&#xff0c;保证本地安装并部署了jenkins&#xff0c;jmeter&#xff0c;xslproc 我搭建的自动化测试框架是jmeterjenkinsxslproc ---注意&#xff1a;原理是&#xff0c;jmeter自生成的报告jtl文件&#xff0c;通过xslproc工具&#xff0c;再结合jmeter自带的模板修改&…

Jekyll框架编译GithubPages,提示没有docs

Jekyll Converters::Scss build issue: No such file or directory dir_chdir - /github/workspace/docs Error: No such file or directory dir_chdir - /github/workspace/docs 解决方案&#xff1a; 修改github page仓库中–> 设置—> pages 把里面的\docs&#xf…

在HTML单页面中,使用Bootstrap框架的多选框如何提交数据

1.引入Bootstrap CSS和JavaScript文件&#xff1a;确保在HTML页面的标签内引入Bootstrap的CSS和JavaScript文件。可以使用CDN链接或者下载本地文件。 <link rel"stylesheet" href"https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css&q…

财报解读:抢滩“睡眠经济”,麒盛科技如何制胜市场?

现代市场经济理论的鼻祖亚当斯密曾说&#xff0c;有需求就有市场&#xff0c;有市场才有发展。 调查研究显示&#xff0c;我国超3亿人存在睡眠障碍&#xff0c;其中超3/4的人晚11点以后入睡&#xff0c;近1/3的人熬到凌晨1点以后才能入睡。针对“睡个好觉”需求的“睡眠经济”…

Oracle递归查询树形数据

实际生活有很多树形结构的数据&#xff0c;比如公司分为多个部门、部门下分为多个组&#xff0c;组下分为多个员工&#xff1b;省市县的归属&#xff1b;页面菜单栏等等。 如果想查询某个节点的父节点或者子节点&#xff0c;一般通过表自身连接完成&#xff0c;但如果该节点的子…
最新文章