Electron-跨平台桌面开发

【Electron】桌面应用开发 Electron是一个使用JavaScript,HTML和CSS构建桌面应用程序的框架。通过将和嵌入到其二进制文件中,Electron允许您维护一个JavaScript代码库,并创建可在Windows,macOS和Linux上运行的跨平台应用程序 - 无需本机开发经验。 阅读详情

我的博客原文:http://localhost:4000/blog/2019/12/31/20191231112532671/

引言:

  • 使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序
  • Electron 基于 Chromium 和 Node.js
  • Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。

参考:

  • https://www.imooc.com/learn/1198

概述&启动

  • 使用html\css\js开发桌面跨平台应用(mac/linux/windows)
  • 基于Chromium和Nodejs(就是把浏览器一起给打包进去)
  • 国内案例:微信、迅雷桌面端
  • 使用的技术:nodejs\npm\前端三套

开发环境

node git npm

编辑器:微软的 Visual Studio Code

官方快速启动

# 克隆示例项目的仓库
$ git clone https://github.com/electron/electron-quick-start

# 进入这个仓库
$ cd electron-quick-start

# 安装依赖并运行
$ npm install && npm start

效果:

在这里插入图片描述

第一个Electron应用

主进程和渲染进程

由于 Electron 使用了 Chromium 来展示 web 页面,所以 Chromium 的多进程架构也被使用到。 每个 Electron 中的 web 页面运行在它自己的渲染进程中。

相当于浏览器窗口时主进程,每个tab是渲染进程。

主进程:

  • 使用和系统对接的Electron API, 就是调用系统API;
  • 创建渲染进程;
  • 全面支持nodejs
  • 只有一个,是程序的入口

渲染进程:

  • 多个,单独
  • 支持 nodejs\ dom api
  • 使用部分Electron API

BrowserWindow

程序入口:main.js

监控main文件变化

避免修改重启应用:

npm install nodemon --save-dev

修改mian.js

"scripts": {
    "start": "electron ."
}

改为:

"scripts": {
    "start": "nodemon --watch main.js --exec electron ."
}

main.js

// 加载模块
const { app, BrowserWindow } = require('electron')

// 当app加载结束时,回调函数
app.on('ready', ()=>{
  // 创建主窗口
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      // 允许使用nodejs的api
      nodeIntegration: true
    }
  })
  // 加载文件
  mainWindow.loadFile('index.html')

  // 创建第二个窗口
  const secondWindow = new BrowserWindow({
    width: 400,
    height: 300,
    webPreferences: {
      nodeIntegration: true
    },
    // 父窗口关闭,子窗口也会关闭
    parent: mainWindow
  })
  secondWindow.loadFile('second.html')
}) 

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World! 2333</h1>
    <script>
      // 使用node语法
      require('./renderer.js')
    </script>
  </body>
</html>

renderer.js

// 可使用node api 和 dom api

// node api
alert(process.versions.node)


// dom api
window.addEventListener('DOMContentLoaded', () => {
    alert('dom加载完成')
})

进程间通信

  • 使用IPC 在进程间通信,Electron提供了接口

在这里插入图片描述

renderer process 和 main proces 互发消息

renderer.js

// 通过 renderer process 向 main proces 发送消息
const { ipcRenderer } = require('electron')

window.addEventListener('DOMContentLoaded', () => {
    // 发送
    ipcRenderer.send('message', 'hello from renderer')
    // 接收
    ipcRenderer.on('reply', (event, arg) => {
        // 打印到页面 
        document.getElementById('message').innerHTML = arg
    })
})

main.js

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

app.on('ready', ()=>{
  // ...
    
  ipcMain.on('message', (event, arg) => {
    // 接受
    console.log(arg)
    // 回复
    // event.sender.send('reply', 'hello from main')
    // 等价上面语法
    mainWindow.send('reply', 'hello from main')
  })
}) 

案例:本地音乐播放器

原型&功能点

主页

1、添加歌曲到曲库

2、播放暂停音乐

3、播放信息:歌名、时间、进度

4、删除歌曲

添加音乐页

1、选择音乐

2、列表展示

3、导入音乐:列表到主页

功能流程&文件结构

在这里插入图片描述

css样式使用bootstrap

npm install bootstrap --save

文件结构

在这里插入图片描述

功能-添加音乐窗口

首页开始

renderer/index.html

<!-- 主页面 -->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>本地播放器</title>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
  </head>
  <body>
    <div class="container mt-4">
        <h1>我的播放器</h1>
        <button type="button" class="btn btn-primary btn-lg btn-block mt-4">
            添加歌曲到曲库
        </button>
    </div>
  </body>
</html>

效果:

在这里插入图片描述

创建添加音乐窗口

index.html

<script>
    require('./index.js')
</script>

index.js

// 主窗口
const {ipcRenderer} = require('electron')
// 只有main process可以添加窗口,所以需要通信
document.getElementById('add-music-button').addEventListener('click', () => {
    ipcRenderer.send('add-music-window')
})

main.js

...
    ipcMain.on('add-music-window', () => {
    	// 添加窗口
        const addWindow = new BrowserWindow({
            width: 500,
            height: 400,
            webPreferences: {
                nodeIntegration: true
            },
            parent: mainWindow
        })
        addWindow.loadFile('./renderer/add.html')
    })

效果:
在这里插入图片描述

重构-封装创建窗口类

使用es6的class

main.js

// 封装创建窗口类
class AppWindow extends BrowserWindow {
  constructor(config, fileLocation) {
    const basicConfig = {
      width: 800,
      height: 600,
      webPreferences: {
        nodeIntegration: true
      }
    }

    // 使用config配置覆盖默认配置
    // const finalConfig = Object.assign(basicConfig, config)
    // 第二种写法
    const finalConfig = {...basicConfig, ...config}
    super(finalConfig)
    this.loadFile(fileLocation)
    // 优化:在加载页面时,渲染进程第一次完成绘制时,会发出 ready-to-show 事件 。 在此事件后显示窗口将没有视觉闪烁
    this.once('ready-to-show', () => {
      this.show()
    })
  }
}

// 重构代码
app.on('ready', ()=>{
  const mainWindow = new AppWindow({},'./renderer/index.html')
  
  ipcMain.on('add-music-window', () => {
    const addWindow = new AppWindow({
      width: 500,
      height: 400,
      parent: mainWindow
    },'./renderer/add.html')
  })
}) 

使用Dialog模块添加音乐文件

Dialog模块可以调用原生api,打开文件。

分装工具类helper.js

// 工具类
exports.$ = (id) => {
    return document.getElementById(id)
}

add.html

<script>
    require('./add.js')
</script>

add.js

// 添加音乐
const {ipcRenderer} = require('electron')
const { $ } = require('./helper')
// 重构
$('select-music-button').addEventListener('click', () => {
    ipcRenderer.send('open-music-file')
})

main.js

// 选择音乐
ipcMain.on('open-music-file', () => {
    dialog.showOpenDialog({
        properties: ['openFile', 'multiSelections'],
        filters: [
            { name: 'Music', extensions: ['mp3'] } 
        ]
    }).then(result => {
        console.log(result.filePaths)
    }).catch(err => {
        console.log(err)
    })
})

效果:

在这里插入图片描述

展示添加的文件列表

main.js

ipcMain.on('open-music-file', (event) => {
    dialog.showOpenDialog({
        // ...
    }).then(result => {
        if(result.filePaths){
            // 传递给add
            event.sender.send('selected-file', result.filePaths)
        } 
    })
}) 

add.html

<div id="musicList" class="mb-2">您还未选择任何音乐文件</div>

add.js

const renderListHTML = (pathes) => {
    const musicList = $('musicList')
    const musicItemsHTML = pathes.reduce((html, music) => {
         html += `<li class="list-group-item">${path.basename(music)}</li>`
         return html
    }, '')

    musicList.innerHTML = `<ul class="list-group">${musicItemsHTML}</ul>`
}

ipcRenderer.on('selected-file', (event, path) => {
    if(Array.isArray(path)){
        // 渲染歌曲List
        renderListHTML(path)
    }
})

效果:
在这里插入图片描述

使用Electron store持久化数据

  • 数据库软件(太大)

  • HTML5的浏览器对象(缓存会过期)

  • 本地文件

    提供了api模块electron-store: https://github.com/sindresorhus/electron-store

安装

npm install electron-store --save

使用:

…

封装-持久化存储类

安装uuid库

 npm install uuid --save

MusicDataStore.js

const Store = require('electron-store')
const uuidv4 = require('uuid/v4')
const path = require('path')

class DataStore extends Store {
    constructor(settings) {
        super(settings)
        this.tracks = this.get('tracks') || []
    }

    // 保存音乐文件
    saveTracks() {
        this.set('tracks', this.tracks)
        return this
    }
    
    // 获取音乐信息
    getTracks() {
        return this.get('tracks') || []
    }

    // 添加音乐信息
    addTracks(tracks) {
        // id 文件路径 文件名称 去重
        const tracksWithProps = tracks.map(track => {
            return {
                id: uuidv4(),
                path: track,
                fileName: path.basename(track)
            }
        }).filter(track => {
            const currentTacksPath = this.getTracks().map(track => track.path)
            return currentTacksPath.indexOf(track.path) < 0
        })
        this.tracks = [...thid.tracks, ...tracksWithProps]
        return this.saveTracks();
    }
}

module.exports = DataStore

使用存储类保存数据

查看数据库存储地址

console.log(app.getPath('userData'))
// C:\Users\Machine\AppData\Roaming\electron-quick-start

add.js

$('add-music-button').addEventListener('click', () => {
    ipcRenderer.send('add-tracks',musicFilesPath)
})

main.js

// 存储数据
ipcMain.on('add-tracks', (event,tracks) => {
    const updatedTracks = myStore.addTracks(tracks).getTracks()
    console.log(updatedTracks)
})

效果:C:\Users\Machine\AppData\Roaming\electron-quick-start\Music Data.json

{
	"tracks": [
		{
			"id": "cc3a3aee-3533-492e-b3da-8cc524db7420",
			"path": "C:\\Users\\Machine\\Desktop\\mp3_test_music\\bad guy.mp3",
			"fileName": "bad guy.mp3"
		},
		{
			"id": "650f80d2-9717-45d2-91b7-d355de85d95a",
			"path": "C:\\Users\\Machine\\Desktop\\mp3_test_music\\Lemon.mp3",
			"fileName": "Lemon.mp3"
		},
		{
			"id": "94b211e2-6d55-4f97-b272-0e4b6e8286db",
			"path": "C:\\Users\\Machine\\Desktop\\mp3_test_music\\起风了.mp3",
			"fileName": "起风了.mp3"
		}
	]
}

功能-播放器窗口

TODO

获取数据 渲染主窗口列表

主窗口播放音乐

应用打包与分发

  • Electron builder: https://github.com/electron-userland/electron-builder
npm install electron-builder --save-dev

配置参考:

https://www.electron.build/configuration/win#WindowsConfiguration-target
https://github.com/zulip/zulip-electron/blob/master/package.json

package.json

{
  "scripts": {
    "dist": "electron-builder --win --x64"
  },
  "build": {
    "appId": "com.xxx.app",
    "win": {
      "target": ["nsis","zip"],
      "icon": "build/icon_256_multi.ico"
    }
  }
}

ico制作需要俄罗斯套娃的ico格式,否则有些图标显示不出来,参考如何制作俄罗斯套娃一般的 electron 专用 ico 图标

运行:

npm run dist

在dist目录下会生成安装包

Electron+Vue

electron-vue脚手架+elementUI

参考:

https://www.cnblogs.com/adorkable/p/11069923.html
https://simulatedgreg.gitbooks.io/electron-vue/content/cn/
https://element.eleme.cn/#/zh-CN/component/installation

electron本就是一个加强版的浏览器的外壳,所以结合前端框架是很当然的~

这里构建一个Electron+Vue+Element首页布局效果。

有人写了脚手架electron-vue,基于vue-cli的,所以直接用吧~

# 安装 vue-cli 和 脚手架样板代码
npm install -g vue-cli
vue init simulatedgreg/electron-vue my-project

# 安装依赖并运行你的程序
cd my-project
npm install
npm run dev

报错了…process is not defined…

好像是node版本太高的问题,不想改node版本,所以找了解决方案如下:

https://www.jianshu.com/p/bdf0a23e7257

解决bug后,跑起来能看到界面了

在这里插入图片描述

接下来就是加入element:参考https://element.eleme.cn/#/zh-CN/component/quickstart

安装

npm i element-ui -S

完整引入:

src/renderer/main.js中增加

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

表格控件显示不正常的解决:element-ui需要加入到白名单里面

.electron-vue/webpack.renderer.config.js,改为

let whiteListedModules = ['vue','element-ui']

css初始化样式重置,使用normalize.css

npm install normalize.css --save

main.js

import 'normalize.css/normalize.css'

修改src/renderer/components/LandingPage.vue,就是修改主页了,使用ElementUI的元素。

效果:

在这里插入图片描述

electron-vue-admin脚手架

参考:

文档:https://panjiachen.github.io/vue-element-admin-site/zh/
项目地址:https://github.com/PanJiaChen/electron-vue-admin

这个脚手架是 electron+vue+ElementUI整合的后台模板。拥有菜单+导航的基本功能。

# install dependencies
npm install

# serve with hot reload at localhost:9080
npm run dev

# build electron app for production
npm run build

# lint all JS/Vue component files in `app/src`
npm run lint

# run webpack in production
npm run pack

效果:

在这里插入图片描述

进入:

在这里插入图片描述

基于Electron的桌面端应用开发和实践 先简单介绍一下electron。electron是由Github开发的开源框架,现在由OpenJS基金会维护的一个开源项目。它允许开发者使用 HTML、CSS 和 JavaScript 来构建跨平台的桌面应用,而且构建出来的应用,可以很好地兼容 Mac、Windows 和 Linux 这些主流的操作系统。 阅读详情

相关推荐

探索 Electron:将 Web 技术带入桌面应用

Electron是一个开源的桌面应用程序开发框架,它允许开发者使用Web技术(如 HTML、CSS 和 JavaScript)构建跨平台的桌面应用程序,它的出现极大地简化了桌面应用程序的开发流程,让更多的开发者能够利用已有的 Web 开发技能来构建功能强大且跨平台的应用程序,这对于提升开发效率和应用程序的快速交付具有重要意义。

ztK63LrD的博客 5013

Electron 开发入门

课程亮点 剖析 Electron 从安装到发布的整个流程使用 Git 管理 Electron 应用源代码使用 C++ 开发 Electron 本地模块知识点 + 示例 + Electron 3.0 源代码 课程背景 Electron 允许使用 Web 技术(HTML5、CSS3、JavaScript)开发跨平台桌面应用,这对 Web 前端和 Node.js 开发者是一大福音,因为从此又多了一项技能。目前已经有很多著...

kunkliu的博客 6218

2024最新指南:如何用Python批量下载Sentinel-2数据(附避坑清单)

本文提供2024年最新Python批量下载Sentinel-2遥感数据的完整指南,涵盖环境配置、API准备、核心下载流程实现及实战避坑清单。通过智能查询器、断点续传下载器等实用工具,帮助用户高效获取遥感数据,避免常见网络问题和数据完整性验证失败。

silver的专栏 619

Electron开发之——快速入门

一 概述 Electron是一个可以使用Web技术如:JavaScript、HTML和CSS来创建跨平台原生桌面应用的框架。借助Electron,我们可以使用纯JavaScript来调用丰富的原生APIs Electron用Web页面作为它的GUI,而不是绑定了GUI库的JavaScript。它结合了Chromium、Node.js和用于调用操作系统本地功能的APIs(如打开文件窗口、通知、图标等) 二 准备材料 开发电脑:Windows10 Node:16.13.1 Npm:8.1.2 三 ele

我的博客 1507

桑基图实战指南:Excel/Python/R三工具高效绘制方法

桑基图是一种以线条宽度编码流量大小、以节点位置表达流程阶段、以连接关系呈现数据流向的专项可视化技术,其核心原理在于‘宽即量、位即序、连即逻辑’。它并非装饰性图表,而是面向业务诊断的分析前置工具,尤其适用于预算分配、能源损耗、用户转化等存在明确单向流动与显著数值差异的场景。相比传统柱状图或漏斗图,桑基图能天然暴露系统瓶颈与隐性损耗,大幅提升决策效率。本文聚焦工程落地,覆盖Excel插件快速交付、Python Plotly交互开发、R networkD3生态集成三大主流路径,兼顾数据准备铁律、索引映射规范与中文

cuml0912的博客 488

【GAN】pytorch-CycleGAN-and-pix2pix开源项目训练自定义数据集

Github:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 一、概念简介 图像转换:将一张图片转换为不同风格的图片,如将一张灰度图变成彩色图,素描图换成实物图。 pix2pix:需要成对的数据集,两个不同域的图像一一对应。 CycleGAN:不需要成对的数据集,只用两个不同域(domain)的图像集合X和Y,两个集合中的图像不是一一对应的。 二、训练pix2pix模型 2.1 combine_A_and_B datasets/combin

See_Star的博客 4756

Electron和QT都是跨平台的桌面开发框架,该如何抉择呢?

一、Electron 的特点与优势(1)基于 Web 技术Electron 是一个基于 Web 技术的跨平台桌面开发框架,它使用 HTML、CSS 和 JavaScript 等前端技术进行开发。这对于熟悉 Web 开发的开发者来说,无疑是一个巨大的优势。他们可以利用自己已有的知识和经验,快速上手 Electron 开发,无需学习新的编程语言和开发工具。例如,一个前端开发者可以轻松地使用 Electron 开发一个桌面应用程序,将自己的 Web 项目打包成一个可执行文件,在不同的操作系统上运行。

2401_82943878的博客 3633

Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物

本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。

wine的专栏 937

electron-egg:跨平台桌面开发的终极利器

本文深入解析了electron-egg作为跨平台桌面开发框架的卓越优势。它通过提供开箱即用的工程化解决方案,集成了MVC架构、插件系统、数据库操作与一键打包等功能,极大提升了开发效率。尤其对国产操作系统提供了深度支持,并允许开发者自由选择Vue、React等前端技术栈,是后端开发者快速构建专业级桌面应用的理想选择。

xxx12的博客 761

EDKII实战:手把手调试PciHostBridge.c,看UEFI如何分配你的PCIe设备资源(IO/Memory空间)

本文深入解析EDKII中PciHostBridge.c模块的工作原理,详细指导如何调试PCIe设备资源分配(IO/Memory空间)。通过实战案例展示UEFI环境下Root Bridge初始化、地址空间转换及协议安装等核心流程,提供常见问题排查方法与性能优化建议,帮助开发者解决PCIe设备兼容性问题。

weixin_29201933的博客 209

别再死记硬背公式了!用Unity ShaderGraph从零实现一个皮肤SSS效果(附完整节点图)

本文详细介绍了如何利用Unity ShaderGraph零代码实现皮肤次表面散射(SSS)效果,包括背光透射(BTDF)和表面散射(BSSRDF)的核心原理与节点构建方法。通过可视化工具,技术美术师和Shader初学者可以直观理解光线在皮肤组织中的散射行为,快速创建真实的皮肤材质效果,适用于游戏角色渲染等场景。

weixin_30838873的博客 593

今日热门项目推荐:electron-egg - 企业级跨平台桌面开发框架

今日热门项目推荐:electron-egg - 企业级跨平台桌面开发框架 【免费下载链接】electron-egg A simple, cross platform, enterprise desktop software development framework ...

gitblog_01425的博客 752

二极管钳位电路、限幅电路和检波电路Multisim电路仿真

本文系统介绍了二极管钳位、限幅和检波三种基础电路的工作原理及Multisim仿真验证。钳位电路通过电容-二极管配合实现波形整体平移,将波峰或波谷固定在指定电压;限幅电路利用二极管导通特性削除信号超出设定阈值的部分;检波电路则通过半波整流和电容滤波从调幅波中提取音频信号。三种电路均通过Multisim仿真验证了理论分析结果,展示了二极管在信号处理中的关键作用。这些基础电路广泛应用于信号调理、电平保护和通信解调等领域。

XU157303764的博客 1126

【限时体验】electron-egg:跨平台企业级桌面开发框架

**读完本文你将获得:** - 3分钟快速搭建企业级桌面应用开发环境 - 掌握Electron主进程与渲染进程通信的5种模式 - 一套代码打包Windows/Mac/Linux/UOS的自动化流程 - 10+企业级桌面软件实战案例的架构设计思路 - 源码加密与性能优化的7个核心技巧 ## ???? 为什么选择electron-egg? ### 企业级痛点解决方案对比 | 开发方式 |...

gitblog_01427的博客 461

cartographer 添加二维码、apritag码作为路标点,测试位置关系

这里记录一下cartographer里面的路标点是如何转换的,首先你要知道路标点在相机坐标系的位置(很多二维码读码器的关系恰好相反,是相机在二维码的坐标系),然后要知道相机坐标系和小车坐标系(一般为base_link)之间的关系。中间用tf_broadcaster_发出来便于查看是否设置正确 void Node::HandleLandmarkMessage( const int trajectory_id, const std::string& sensor_id, const ca

南北粉面馆 2432

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

热门项目推荐:electron-egg - 企业级跨平台桌面开发框架新标杆

热门项目推荐:electron-egg - 企业级跨平台桌面开发框架新标杆 【免费下载链接】electron-egg A simple, cross platform, enterprise desktop software development framework ...

gitblog_01410的博客 522

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

pythonelectron桌面开发案例_环信实操 | 使用electron进行跨平台桌面开发

这不意味着Electron是绑定了GUI库的JavaScript。相反,Electron使用Web页面作为它的GUI,所以你能把它看作成一个被JavaScript控制的,精简版的Chromium浏览器。Electron的版本更新很频繁,基本保持在1周发布一个小版本,每季度发布一个大版本。除了稳定版外还有Beta版和Nightly(最新功能试用版),Chromium更新时,Electron也会跟着更...

weixin_39674028的博客 932

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Electron入门:跨平台桌面开发指南

Electron是一个基于JavaScript、HTML和CSS构建跨平台桌面应用的框架,它集成了Chromium和Node.js,开发者无需掌握原生开发技术即可创建Windows、macOS和Linux应用。开发流程包括:初始化Node.js项目并安装Electron依赖;创建主进程脚本(main.js)控制应用生命周期;设计界面(index.html);通过预加载脚本(preload.js)实现主进程与渲染进程的通信。项目完成后可使用Electron Forge进行打包分发。该框架让Web开发者能快速构

小伙伴们全都Lucky! 1116

超强桌面开发工具Electron:从零到一构建跨平台应用

还在为跨平台桌面应用开发头疼吗?想要用熟悉的Web技术栈(JavaScript、HTML、CSS)来构建原生桌面应用?Electron正是你需要的解决方案!作为GitHub开源的跨平台桌面应用开发框架,Electron已经成功支撑了Visual Studio Code、Slack、Discord等知名应用。 读完本文,你将掌握: - ✅ Electron核心架构和工作原理 - ✅ 从零搭建第一个...

gitblog_01026的博客 1182

vue引用electron_如何搞定跨平台桌面开发?Electron助你快速起步

嗨,我是勾勾。今天要介绍的是 Electron 跨平台桌面应用开发。Electron(https://electronjs.org/)是一个运行平台,它能够让我们通过 HTML + CSS + JavaScript 开发桌面应用程序。核心原理就是 Electron 中将 Chromium(Chrome 的内核)和 Node.js 打包到了一起,通过 Chromium 提供 WebView 从而实现...

weixin_39822923的博客 221

HoRain云--Electron跨平台桌面开发全指南

Electron是一个开源框架,结合Chromium、Node.js和原生API,让开发者能用HTML/CSS/JS编写跨平台桌面应用。它适合工具类软件、编辑器等场景,优势在于开发效率高、跨平台支持强、生态成熟。但存在性能开销大、安装包体积较大等局限。核心概念包括主进程、渲染进程、IPC通信等,使用时需注意安全配置。与Tauri、Flutter等工具相比,Electron更适合快速将Web产品转为桌面应用。优化建议包括懒加载、减少依赖等。

2401_86544677的博客 900

vue引用electron_前端跨平台桌面开发技术:Electron 快速起步

嗨,我是勾勾。今天要介绍的是 Electron 跨平台桌面应用开发。Electron(https://electronjs.org/)是一个运行平台,它能够让我们通过 HTML + CSS + JavaScript 开发桌面应用程序。核心原理就是 Electron 中将 Chromium(Chrome 的内核)和 Node.js 打包到了一起,通过 Chromium 提供 WebView...

weixin_39807954的博客 393

centos下打包electron_Electron跨平台桌面开发 - 搭建项目 - sidoc

electron的打包工具有很多,这里使用目前最流行的 electron-builder 打包并实现自动更新;1.0> 首先确认 npm 和 yarn 源为国内镜像:npm config get registryyarn config get registry2.0>. 添加electron镜像源(Mac/Centos)修改/etc/bashrc文件sudo vi /etc/bas...

weixin_39672160的博客 280

跨平台桌面开发王器Electron:安装过程深入解析

1.1 安装 Electron 依赖包开发者往往通过 npm install(或 yarn add)指令完成为 Node.js 工程安装依赖包的工作,安装 Electron 也不例外,下...

华章IT官方博客 1537
上一篇: 基于H5实现图像处理:灰度化和二值化
下一篇: Java面试之JUC
Machine4869
博客等级 码龄10年 9粉丝 14原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值