electron预加载脚本

  • webPreferences 指定预加载脚本,可以使用部分node脚本
        webPreferences: {
            preload: path.join(__dirname, "preload.js"),
        },
  • 创建preload.js 中 测试文件读取功能
const fs = require('fs')
const text = fs.readFileSync('package.json', 'utf-8')

console.log(text)
  • 报错,为了安全electron默认没有开放node全部功能,在这里插入图片描述

  • 添加 nodeIntegration 属性

    webPreferences: {
            preload: path.join(__dirname, "preload.js"),
            nodeIntegration: true
        },

在这里插入图片描述

  • mian.js 全部代码
// main.js

//main.js 主进程  是nodejs环境
//渲染进程等于浏览器运行环境 



//BrowserWindow 窗口模块
const { app, BrowserWindow } = require("electron");
const path = require("path");
const createWindow = () => {
    // Create the browser window.
    const mainWindow = new BrowserWindow({
        width: 300,
        height: 300,
        // 指定预加载脚本
        webPreferences: {
            preload: path.join(__dirname, "preload.js"),
            nodeIntegration: true
        },
        // frame: false, //隐藏标题栏
        transparent: true
    });
    //每次启动弹出调试框
    mainWindow.webContents.toggleDevTools();
    // 加载页面文件
    mainWindow.loadFile(path.resolve(__dirname, "index.html"));
    // 加载外部链接
    // mainWindow.loadURL('')
    // 打开开发工具
    // mainWindow.webContents.openDevTools()
};

// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {
    createWindow();

    app.on("activate", () => {
        // 在 macOS 系统内, 如果没有已开启的应用窗口
        // 点击托盘图标时通常会重新创建一个新窗口
        if (BrowserWindow.getAllWindows().length === 0) createWindow();
    });
});

// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此, 通常
// 对应用程序和它们的菜单栏来说应该时刻保持激活状态,
// 直到用户使用 Cmd + Q 明确退出
app.on("window-all-closed", () => {
    if (process.platform !== "darwin") app.quit();
});

// 在当前文件中你可以引入所有的主进程代码
// 也可以拆分成几个文件,然后用 require 导入。

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

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

相关文章

Visual Studio 2013 “即将退休”

新年快乐! 这也是向各位开发者提醒 Visual Studio 支持生命周期中即将到来的好时机。 对 Visual Studio 2013 的支持即将在今年(2024年)的4月9日结束。如果你正在使用旧版本的 Visual Studio,我们强烈建议您升级您的开发环境到最新的 Visual Studio 20…

给孩子选台灯什么样的好?分享高品质的学生护眼台灯!

在这个青少年如此高近视率的情况下,想要真正保护孩子的视力,除了需要监督孩子养成良好的用眼习惯以外,还要注意光线环境!在夜晚不管是看书写字、还是使用电脑平板上网课,都需要一个健康的照明环境。因此在挑选孩子学习…

Electron介绍

前言 相信很多的前端小伙伴都想过一个问题,web技术是否可以用于开发桌面应用。答案当然是可以的,Electron框架就是其中的一种解决方案。 Electron介绍 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 并不是一门新的…

.NetCore部署微服务(一)

目录 前言 什么是微服务 微服务的优势 微服务的原则 创建项目 在Docker中运行服务 客户端调用 简单的集群服务 前言 写这篇文章旨在用最简单的代码阐述一下微服务 什么是微服务 微服务描述了从单独可部署的服务构建分布式应用程序的体系结构流程,同时这些…

Redis 连接 命令

目录 1.Redis Echo 命令 - 打印字符串简介语法可用版本: > 1.0.0返回值: 返回字符串本身。 示例 2.Redis Select 命令 - 切换到指定的数据库简介语法可用版本: > 1.0.0返回值: 总是返回 OK 。 示例 3.Redis Ping 命令 - 查看服务是否运行简介语法可用版本: > 1.0.0返回…

【Proteus仿真】【Arduino单片机】超声波测距系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用动态数码管、按键、HCSR04超声波、蜂鸣器模块等。 主要功能: 系统运行后,数码管显示超声波检测距离,当检…

Apache网页优化

本章主要介绍如何对Apache网页进行优化 Apache 网页压缩Apache 网页缓存Apache 隐藏版本信息Apache 网页防盗链 目录 1、网页压缩与缓存 1.1、网页压缩 (1)gzip介绍 (2)HTTP压缩的过程 (3)Apache的…

Scikit-Learn线性回归(五)

Scikit-Learn线性回归五:岭回归与Lasso回归 1、误差与模型复杂度2、正则化3、Scikit-Learn岭(Ridge)回归4、Scikit-Learn Lasso回归 1、误差与模型复杂度 在第二篇文章 Scikit-Learn线性回归(二) 中,我们已经给出了过拟合与模型泛…

均匀与准均匀 B样条算法

B 样条曲线的定义 p ( t ) ∑ i 0 n P i F i , k ( t ) p(t) \sum_{i0}{n} P_i F_{i, k}(t) p(t)i0∑​nPi​Fi,k​(t) 方程中 n 1 n1 n1 个控制点, P i P_i Pi​, i 0 , 1 , ⋯ n i0, 1, \cdots n i0,1,⋯n 要用到 n 1 n1 n1 个 k k k 次 B 样条基函数 …

手游开发项目经验简单总结

这是我最近一个完整的手游开发项目的总结信息,请大家指点 目录 引擎 语言 编辑器 项目开发模块规划分 主项目工程,UI资源项目工程,模型场景资源项目工程 热更框架 前后端协议 UI 图集 多语言适配 SLG场景和其他场景 战斗 美术模型资源 人物…

微信怎么删除聊天记录?进来Get常用的操作方法!

微信是国内使用最广泛的社交应用程序之一。在我们使用微信的过程中,删除聊天记录是一个常见的操作。人们会删除一些不需要的聊天记录,以此减少存储空间的占用。微信怎么删除聊天记录?本文将介绍删除聊天记录的常用方法,非常简单&a…

Git保姆级安装教程

Git保姆级安装教程 一、去哪下载二、安装2.1 具体安装步骤2.2 设置全局用户签名 一、去哪下载 1、官网(有最新版本):https://git-for-windows.github.io/ 2、本人学习时安装的版本,链接:https://pan.baidu.com/s/1uAo…

被替换的文件怎么找回?3个高效方法分享!

“我在对电脑进行清理时,删除了一些比较重要的文件,为了恢复它们,我重新复制了一些文件,这导致我原先的文件被替换了,这怎么办呢?被替换的文件还能恢复吗?” 在信息化时代,用户的电脑…

Spark四:Spark Streaming和Structured Streaming

简介 Spark Streaming整体流程和DStream介绍 Structured Streaming发展历史和Dataflow模型介绍 Spark Streaming 是一个基于 Spark Core 之上的实时计算框架,从很多数据源消费数据并对数据进行实时的处理,具有高吞吐量和容错能力强等特点。 Spark Stre…

【完整流程】实现STM32+ESP8266+MQTT+阿里云+APP——【第二节-编写STM32程序初步实现ESP8266上云发布订阅消息】

🌟博主领域:嵌入式领域&人工智能&软件开发 前言:本节实现,硬件连接STM32与ESP8266,编写STM32程序通过at命令方式实现STM32ESP8266与阿里云物联网平台发布订阅消息,本节最终实现初步的发布订阅消息…

2024年阿里云服务器按年与按带宽活动价格出炉,最低仅需61元/1年

2024年阿里云服务器活动价格出炉了,新版活动价格表分为按年与按带宽两个价格表,按年最高可选择5年,按带宽可选择按量付费带宽和按固定带宽模式,按年活动价格最低61元/1年,按照带宽模式最低365.33元/1年,不同…

深情回忆VB编程之路

深情回忆VB编程之路 在上世纪90年代末,我与编程世界的初次邂逅始于QBasic这一古老而亲切的语言。那时的编程环境虽然简陋,但却蕴藏着无穷的可能性,每个字符仿佛跳跃着生命,在黑色屏幕中编织出我对编程世界最初的憧憬和梦想。 时光…

计算机网络学习笔记(5)——运输层

本文继续整理计算机网络体系架构知识内容。今日主讲——运输层。 网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。 运输层提供了应用进程间的逻辑通信。运输层向高层用户屏蔽了下面网络层的核心细节,使应用程序看 见的好像在两…

JavaScript基本使用方法

JavaScript 是一种脚本语言,常用于 Web 开发。这里是一些基本的使用方法: 声明变量: 在 JavaScript 中,可以使用 var、let 或 const 关键字来声明变量。例如: var age 25; let name "John"; const PI …

【51单片机】点亮第一个LED灯(含创建文件等基础操作)

51单片机现在不仅是电子信息专业学生的必修课,也是进入嵌入式领域的踏脚石。 本系列将会按照江科大的视频进行,也算是相当于一个笔记,进行巩固 实现第一个LED灯的点亮其实并不复杂,重要的是有一些准备工作比较繁琐,就…