关于Electron这个框架我就不多介绍,它说白了就是Node和Chromium内核的一种封装。用它开发出来的桌面应用程序其实就是套壳浏览器的应用,这就是为什么它可以用web前端技术来开发,并且可以跨平台的原因了。
vscode 是前端工程师常用的 ide,而且它的实现也是基于前端技术。既然是前端技术实现的,那么我们用所掌握的前端技术,完全可以实现一个类似 vscode 的 ide。但在那之前,我们首先还是要把 vscode 是怎么实现的理清楚。本文我们就来理一下 vscode 是怎么跑起来的。
通过前面的学习,我们可以发现 BrowserWindow 模块是我们开发 Electron 应用程序的基础。除了咱们之前说的那些常见功能外,它还暴露了许多可以改变您浏览器窗口的外观和行为的API。
由于Electron基于Chromium架构,所以自然而然遵循其多进程架构,一个完整的Electron应用包含多个进程,这些进程被分为主进程与渲染进程
BrowserWindow模块是用于创建和管理图形用户界面的窗口。它提供了一种在桌面应用程序中创建原生窗口的方式,类似于浏览器中的窗口。
对electron了解之后,让我们学习创建一个窗口,使用自己的编写的窗口 搭建环境可以看https://www.cnblogs.com/zhoulifeng/p/12306050.html
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 系统对话框: 1. 调用系统API实现文件保存或读取前的选择功能: 📷 如上图所示的功能,
Atom、Postman、Notion、Vscode等都是用Electron开发的
Electron中,与GUI相关的模块(如 dialog, menu 等)只存在于主进程,而不在渲染进程中
每个版本都有废弃和移除的API,废弃的依旧可以用,所以这里只列一些常用的被移除的API及对应的替换方法。
Electron相当于一个浏览器的外壳,可以把网页程序嵌入到壳里面,可以运行在桌面上的一个程序,可以把网页打包成一个在桌面运行的程序,通俗来说就是软件,比如像QQ、优酷、网易音乐等等。功能的强大超出你的想象,可以构建跨平台桌面程序, 本身支持node.js,可以使用node.js的一些模块
Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium (opens new window) 和 Node.js (opens new window) 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。
Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。
Web浏览器是非常复杂的应用程序。除了显示网页内容的主要功能外,它们还有许多次要的职责,比如管理多个窗口(或标签)和加载第三方扩展。 在早期,浏览器通常使用一个进程来实现所有这些功能。虽然这种模式意味着你打开的每个标签的开销更少,但它也意味着一个网站崩溃或挂起会影响整个浏览器。
当我们执行 electron . 命令后, Electron 会运行当前目录(.)下的 package.json 文件中 main 字段指定的文件。而运行该文件的进程既是主进程。
在Electron12时候被废弃,使用必须配置enableRemoteModule
效果是实现了,但是你拖不动应用了,所以需要在应用的顶部div加上 -webkit-app-region: drag 同时在有按钮的元素上取消拖拽 -webkit-app-region: no-drag 但是这样做还是有问题,普通的程序顶部是可以缩放的,而这样操作的话就不可以了。刚开始想到title div的包裹层使用padding-top撑开,但是碰到布局有背景色的就略尴尬。。后来想到使用一个div position定位 height设置为5px,本质上就是代替padding出来的那段白色区域,height设置为5px是因为我在windows上对比了其他应用程序,这样的热区容易让鼠标识别到,太宽或太窄的就本上很难一次性就被识别进行伸缩。
运行一个electron小demo出现的一个错误信息:Cannot find module app
查看官网的教程,根本就安装不了,索性随便查了其他资料总结 配置淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 执行全局安装 cnpm install electron -g 测试 📷 加载一个url index.js const electron = require('electron'); const app = electron.app; const BrowserWindow = electron.Browser
在Electron中,进程通过开发人员定义的“通道”与ipcMain模块和ipcRenderer模块进行通信。这些通道是任意的(您可以任意命名它们)和双向的(您可以为两个模块使用相同的通道名称)。要从渲染进程向主进程发送单向IPC消息,可以再预渲染脚本preload.js里使用ipcRenderer发送API发送消息,然后在main.js里用ipcMain.on接收。你通常使用这个模式从你的web内容中调用一个主进程API。我们将通过创建一个简单的应用程序来演示这种模式,该应用程序可以通过编程方式更改窗口的标题。
最近CloudKit Web端授权页面更新后中使用了CMD模块化的东西,因此会检查require是否存在,本意是存在的话就会按照CMD的方式加载js模块,但是Electron中默认通过require来加载electron模块或者npm模块,这样问题就来了,Electron中的Cloudkit授权页面就会报错!
前阵子将排课系统的一些功能,提供给 solar 编辑器使用,solar 是基于互动课件编辑器 Cocos ICE 进行二次定制和个性化开发的课件制作系统,其底层是 Cocos Creator。而 Cocos Creator 是基于 Electron 进行开发的,所以学习了一些关于 Electron IPC 通信的相关知识,在这里做一个总结。 文章的开始,先让我们来了解下 Electron 是什么。 1. 什么是 Electron? Electron 官网只有一句简单的话: 使用 JavaScript,HTM
Javascript在web开发中已经稳稳的占据了重要位置,现在已经开始渗透到桌面开发了 Electron 便是用来创建桌面应用的框架 使用 JavaScript + HTML + CSS 就可以开发跨平台的桌面应用 支持 Windows Linux Mac,在这3个系统中,Electron可以轻松的编译和运行 Electron 是开源的,由 GitHub 亲自维护,还有活跃的贡献者社区 Electron 源于 GitHub 开发的一款文本编辑器 Atom,刚开始,Electron 是为 Atom 而创建,
现在,当Fire Sale启动时,它为UI创建一个窗口。当该窗口关闭时,应用程序退出。虽然这种行为完全可以接受,但我们通常希望能够打开多个独立的窗口。在本章中,我们将Fire Sale从一个单窗口应用程序转换为一个支持多个窗口的应用程序。在此过程中,我们将探索新的Electron APIs以及一些最近添加的JavaScript。我们还将探讨在将一个主进程配置为与一个渲染器进程通信,并对其进行重构以管理可变数量的渲染器进程时出现的问题的解决方案。本章末尾的完整代码可以在http://tinyurl.com/y4z9oj69。 然而我们从第4章-使用本机文件对话框和帮助进程间通讯的分支开始。
Electron 是由 Github开发的开源框架 它允许开发者使用Web技术构建跨平台的桌面应用 Electron = Chromium + Node.js + Native API
Dock 是 Mac OS 电脑主界面底部的应用程序集合,可以理解成 windows 下的桌面快捷方式。通常,我们会把比较常用的软件锁定在 Dock 下,便于快速找到和使用它们。
使用 JavaScript, HTML 和 CSS 构建的跨平台桌面应用,能够兼容 Mac, Windows 和 Linux 环境,我们所熟悉的 Skype, Gihub Desktop, Visual Studio Code, Atom 等等软件,都是通过 Electron 进行构建的。
最近一直在做批量测试工具的开发,打包的exe,程序运行也是一个黑乎乎的dos窗口。
最近公司项目需求涉及到 electron 应用的标签页实现,所以找到了这个开源的页签实现方式。
记得以前用过一段wps, wps有一个蛋疼的设定令我至今难忘, 那就是不支持多窗口, 这意味着你无法同时查看两篇文档, 对应现实生活中的场景就是, 即使给了你一份材料做对照, 你也会抄的很慢, 因为你需要不停的切换标签, 我当时认为wps的设计者,或许是小时候老师不让撕答案, 所以每次抄答案都得翻页抄, 否则不得劲...
React作为日常使用比较频繁的框架,这里就不详细说明了,这里主要是想通过几篇文章让大家快速上手Electron以及与React完美融合。
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 初始化项目: 初始化一个空项目,可以使用mkdir my-electron-app &
Electron是使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用的一个框架,本人之前写的一个放烟花的程序fireworks-cool就是基于这套框架来做的。electron在跨平台应用方面做的还是挺好的,著名的编辑器VS Code与Atom都是使用Electron来开发的。有了Node,前端工程师可以直接干后端的事了;有了Electron,前端工程师可以直接干桌面应用工程师的事了。昨天研究这个touchbar,真心感觉到了JavaScript的无所不能属性,明天我们开发一个操作系统
在Electron 中使用Vue Devtools ·首先在Chrome中安装Vue Devtools; ·在Chrome中打开扩展程序,并且开启开发者模式,这样就可以获取扩展程序的ID,记住这个ID ·在Electron应用中添加如下代码: main/index.js
在Electron中,主进程和渲染进程是两个不同的执行上下文。主进程运行在Node.js环境中,可以访问Node.js的API和原生操作系统功能。渲染进程则运行在浏览器环境中,具有访问DOM和Web API的能力,但默认情况下无法直接访问Node.js的API。如果一定要使用,需要修改配置。
前两篇文章我们介绍了react+electron构建桌面应用和如何加载本地的静态资源。然后现在有个需求,是要使应用里的弹窗独立于主窗口,今天来实现这个需求。
摘要总结。该文介绍了如何使用Electron框架开发桌面应用。Electron是一个用于构建跨平台桌面应用的框架。通过使用Electron,开发者可以使用JavaScript、HTML和CSS来构建桌面应用。Electron应用包括三个主要组件:package.json文件、index.html文件以及main.js或renderer.js文件。使用Electron开发应用时,可以通过Electron的API与主进程和渲染进程进行交互。Electron应用可以运行在Mac、Windows和Linux上。
添加淘宝 NPM 镜像 啥都不说了,干活前先添加淘宝 NPM 镜像,不然后面安装模块的时候会卡住。 $ sudo npm install -g cnpm --registry=https://registry.npm.taobao.org 安装 electron 这里我是使用的全局 $ sudo cnpm install -g electron 创建应用 一个 Electron 应用的目录结构大致如下: myapp/ ├── package.json ├── main.js └── index.html p
Electron是一个跨平台的桌面客户端框架,使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序,文档:https://www.electronjs.org/zh/docs/latest,当前使用最新稳定版本:20.1.4 特性 我们可以从中了解到他实现的方式以及他的应用场景 我认为他们最大特点就是: 主进程和渲染进程就行隔离(沙箱模式) 当时用户操作和渲染的事情都是交给渲染进程 当需要操作系统API,例如:创建新窗体,获取电脑的相关信息等就交给主进程 也就是说当主进程和渲染进程需
Electron 可以让你使用开发 Web 的技术去开发跨平台的桌面端应用,由 Github 主导和开源,大家熟悉的 Atom 和 VSCode 编辑器就是使用 Electron 开发的。
说起 Electron,大家能定不会感觉到陌生,庞大的体积,内置浏览器,Hello World 都有 200+M... 我个人是很反感跨段应用的,虽然对于开发来说,节省了很多时间,但是站在用户的角度来讲,体验就不是那么称心如意了。但是最近一些业务需要用到 Electron,折腾过程中也踩了不少坑,总结一下。
要创建自定义菜单,你需要使用 Electron 的 Menu 模块。下面是个例子:
如果在 Electron 中使用 React,在 React 组件中调用 Node.js 模块会抛出错误,告知你模块或者模块中的方法不存在,这是因为默认情况下 Electron 模拟的是纯浏览器环境,而浏览器中自然无法直接使用 Node.js 模块,如果需要使用 Node.js 模块,需要进行额外的配置。
安装electron依赖经常会不成功 在项目目录下创建.npmrc文件,设置镜像地址 npm config set strict-ssl false
最近手头的 electron 项目需要做一个报告导出的功能,导出时要弹出个页面,可让用户自行补全相应的字段。
vue引入electron的ipcRenderer等其它模块会出现这种情况 解决方案 自定义事件 使用渲染进程捕捉
使用Electron开发客户端程序已经有一段时间了,整体感觉还是非常不错的,其中也遇到了一些坑点,本文是从【运行原理】到【实际应用】对Electron进行一次系统性的总结。【多图,长文预警~】
最近有个需求,Electron 打开的窗口要实现拖拽功能,大概看了一眼 BrowserWindow 的 API 却只找到了一个 move 事件,这个事件默认是针对有边框窗口的,也即 frame: true 的窗口。
https://www.slimjet.com/chrome/google-chrome-old-version.php
领取专属 10元无门槛券
手把手带您无忧上云