首页 > 其他分享 >electron 官网速通

electron 官网速通

时间:2024-08-21 08:57:47浏览次数:10  
标签:内置 const app 网速 js electron 实例

前言:参考Electron 中文网

核心知识点:有哪些进程进程之间的通信electron API 分类及怎么调用

一、快速开始

1. 新建一个 my-electron 的文件夹。

2. 运行 npm init 创建 package.json 文件。

3. 填写 author 和 description 字段,应用打包必须。

4. 运行 npm install --save-dev electron,安装依赖。

安装报错时,可参考安装 electron 报错解决

5. 安装 Electron Forge 依赖,并使用其 import 命令来设置 Forge 的脚手架,用来打包应用。

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

npx electron-forge import

6. 修改 package.json 的 scripts 对象

使用 nodemon 启动命令,可以动态更新 main.js 的修改,不用重复启服务。

{

  "name": "electron-demo",

  "version": "1.0.0",

  "description": "this is a demo",

  "main": "main.js",

  "scripts": {

    "start": "nodemon --watch main.js --exec npm run build",

    "build": "electron-forge start",

    "package": "electron-forge package",

    "make": "electron-forge make",

    "publish": "electron-forge publish"

  },

  "keywords": [],

  "author": "yqcoder",

  "license": "ISC",

  "devDependencies": {

    "@electron-forge/cli": "^7.4.0",

    "@electron-forge/maker-deb": "^7.4.0",

    "@electron-forge/maker-rpm": "^7.4.0",

    "@electron-forge/maker-squirrel": "^7.4.0",

    "@electron-forge/maker-zip": "^7.4.0",

    "@electron-forge/plugin-auto-unpack-natives": "^7.4.0",

    "@electron-forge/plugin-fuses": "^7.4.0",

    "@electron/fuses": "^1.8.0",

    "electron": "^31.3.1"

  },

  "dependencies": {

    "electron-squirrel-startup": "^1.0.1"

  }

}

7. 根目录创建 main.js 文件

const { app, BrowserWindow } = require("electron");

const path = require("node:path");



const createWindow = () => {

  const mainWindow = new BrowserWindow({

    width: 800,

    height: 600,

    webPreferences: {

      preload: path.join(__dirname, "preload.js"),

    },

  });



  mainWindow.loadFile("index.html");

};

app.whenReady().then(() => {

  createWindow();



  app.on("activate", () => {

    if (BrowserWindow.getAllWindows().length === 0) createWindow();

  });

});



app.on("window-all-closed", () => {

  if (process.platform !== "darwin") app.quit();

});

8. 根目录创建 index.html 文件

<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <!-- https://web.nodejs.cn/en-US/docs/Web/HTTP/CSP -->

    <meta

      http-equiv="Content-Security-Policy"

      content="default-src 'self'; script-src 'self'"

    />

    <title>Hello World!</title>

  </head>

  <body>

    <h1>Hello World!</h1>

    We are using Node.js <span id="node-version"></span>, Chromium

    <span id="chrome-version"></span>, and Electron

    <span id="electron-version"></span>.

    <script src="./renderer.js"></script>

  </body>

</html>

9. 根目录创建 preload.js 文件

window.addEventListener("DOMContentLoaded", () => {

  const replaceText = (selector, text) => {

    const element = document.getElementById(selector);

    if (element) element.innerText = text;

  };



  for (const dependency of ["chrome", "node", "electron"]) {

    replaceText(`${dependency}-version`, process.versions[dependency]);

  }

});

10. 运行项目

npm run start

11. 项目打包

npm run make

二、页面

BrowserWindow API 用于创建和管理应用窗口

1. 页面载入

每个窗口内容都是一个页面,页面可以是本地 HTML 或远程网址。

1.1 创建页面

在根目录中创建 index.html 网页:

<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8" />

    <meta

      http-equiv="Content-Security-Policy"

      content="default-src 'self'; script-src 'self'"

    />

    <meta

      http-equiv="X-Content-Security-Policy"

      content="default-src 'self'; script-src 'self'"

    />

    <title>Hello from Electron renderer!</title>

  </head>

  <body>

    <h1>Hello from Electron renderer!</h1>

    <p>

标签:内置,const,app,网速,js,electron,实例
From: https://blog.csdn.net/weixin_64684095/article/details/140920202

相关文章

  • 海外代理IP网速快慢取决因素有哪些?
    在全球化日益加深的今天,海外代理IP成为许多用户进行跨境网络活动的重要工具。然而,用户在使用海外代理IP时,往往会遇到网速快慢不一的问题。本文将从多个角度探讨影响海外代理IP网速快慢的因素,帮助用户更好地理解并选择适合自己的代理IP服务。一、网络基础设施与带宽网络基础......
  • 清除 Electron 中的缓存数据
    Electron将其缓存存储在以下文件夹中:window:C:\Users<user>\AppData\Roaming<yourAppName>\CacheLinux:/home//.config//Cache操作系统:/Users//Library/ApplicationSupport//Cacheletcache=app.getPath('cache');//获取缓存的路径constcachePath=path.......
  • electron-forge通过Squirrel.Windows打包导致的asar文件过大的解决方案
    环境我的Eectron环境如下:"@electron-forge/cli":"^7.1.0","@electron-forge/maker-deb":"^7.1.0","@electron-forge/maker-rpm":"^7.1.0","@electron-forge/maker-squirrel":"^7.1.0",&q......
  • Electron 的contextBridge
    contextBridge是Electron框架中用于在渲染器进程(通常是Web页面)和主进程之间安全地暴露API的一种方式。它允许开发者在保持主进程和渲染器进程之间清晰分离的同时,从主进程向渲染器进程安全地传递方法和属性。这是通过创建一个单向的、只能从主进程到渲染器进程的桥接......
  • electron 镜像
    解压node-v20.15.1-linux-x64.tar.gz到/home/cnki/vm;;环境变量~/.bashrcexportNODE_HOME=/home/cnki/vm/node-v20.15.1-linux-x64exportPATH=$NODE_HOME/bin:$PATH;;npmnpmconfigsetregistryhttp://mirrors.cloud.tencent.com/npm/electron(x64,arm)修改.......
  • Electron项目
    ​ 这个项目的一个亮点就是他把我们常用的一些需求我都进行了一些落地实现,因为国内资源还是挺少的,大家自学electron的话可能只能去看文档,看文档又get不到一些重点。就比如说像electron打包就没有实际的教程,我是综合了官方文档和stackoverflow里面的一些回答给了一个可行的方案。......
  • Electron项目
    ​ 这个项目的一个亮点就是他把我们常用的一些需求我都进行了一些落地实现,因为国内资源还是挺少的,大家自学electron的话可能只能去看文档,看文档又get不到一些重点。就比如说像electron打包就没有实际的教程,我是综合了官方文档和stackoverflow里面的一些回答给了一个可行的方案。......
  • electron-store 中文文档
    electron-store简介为您的Electron应用或模块提供简单的数据持久化功能——保存和加载用户设置、应用状态、缓存等。Electron本身没有内置的方式来持久化用户设置和其他数据。此模块为您处理这些问题,以便您可以专注于构建应用。数据被保存在一个名为config.json的JSON文件中,......
  • # Cocos通过Electron打包web应用后,在触屏一体机设备触摸滑动无效问题解决
    Cocos通过Electron打包web应用后,在触屏一体机设备触摸滑动无效问题解决已经很晚了,刚刚解决这个问题,还是想记录一下,因为刚刚接触cocos没多久,这个问题困扰了我很久。背景接手了一个答题小游戏,由于涉及敏感信息就不在这里截图了,交接到我手里的是用cocos开发的,之前从来没有接触......
  • Electron + Vue+Node.js 搭建前端桌面应用
    一、在使用Electron之前我们要了解Electron是什么?Electron官网地址点此: electron官方地址Electron相当于一个浏览器的外壳,我们将编写的HTML,CSS,Javascript网页程序嵌入进Electron里面以便于在桌面上进行运行。通俗来讲它就是一个软件,如QQ、网易......