electron创建窗口常用配置参数

本文详细介绍了Electron应用中浏览器窗口的各种配置参数,包括窗口尺寸、位置、标题、显示模式等,提供了丰富的设置选项,帮助开发者更好地控制和优化窗口表现。
{
  "width": 800,//指定窗口的宽度,单位: 像素值. 默认是 800
  "height":600,//指定窗口的高度,单位: 像素值,. 默认是 600
  "minWidth":400,//窗口的最小宽度,单位: 像素值,
  "minHeight":300,//窗口的最小高度,单位: 像素值,
  "title":"测试窗口",//窗口的默认标题
  "center":true,//窗口是否在屏幕居中;true or false
  "resizable":true,//窗口的大小是否可以;true or false,默认值为true
  "movable":true,//窗口能否可以被移动;true or false,默认值为 true
  "frame":true,//值为true或false, 表示是否创建无边框窗口,默认的程序窗口是带外壳的(标题栏,工具栏,边框等)
  "show": true , //是否显示窗口
  "kiosk": false,//是否使用kiosk模式。如果使用kiosk模式,应用程序将全屏显示,并且阻止用户离开应用。true or false
}

下面几个网站可以作为参考补充:

https://wizardforcel.gitbooks.io/electron-doc/content/api/browser-window.html

https://segmentfault.com/a/1190000008459541

https://www.jianshu.com/p/4b2c69ed10b8

官方文档:https://electronjs.org/docs/api/browser-window

 

转载于:https://www.cnblogs.com/luzhanshi/p/11315936.html

Electron 中,`webPreferences` 是 `BrowserWindow` 构造函数的一个配置项,用于定义渲染进程的行为和功能。通过设置不同的属性,可以控制窗口的安全性、性能、功能等。 ### 配置 `webPreferences` 的基本方法 创建 `BrowserWindow` 时,可以通过传入的配置对象中的 `webPreferences` 属性来设置相关参数。例如: ```javascript const { BrowserWindow } = require('electron'); let win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: false, enableRemoteModule: true, devTools: true } }); ``` ### 常用 `webPreferences` 属性说明 - **`nodeIntegration`** 控制是否在渲染进程中启用 Node.js 集成。若设置为 `true`,则可以在渲染进程中直接使用 Node.js 的模块,如 `require('fs')`。 ```javascript nodeIntegration: true ``` 注意:启用此功能可能会带来安全风险,特别是在加载远程内容时 [^4]。 - **`contextIsolation`** 控制是否启用上下文隔离。上下文隔离可以防止网页中的脚本访问 Node.js 的 API,提高安全性。 ```javascript contextIsolation: true ``` 如果启用上下文隔离,则需要结合 `preload` 脚本来安全地暴露部分 Node.js 功能 [^5]。 - **`enableRemoteModule`** 控制是否启用 `remote` 模块,该模块允许在渲染进程中调用主进程的方法。 ```javascript enableRemoteModule: true ``` 若未启用此选项,使用 `remote` 模块时会出现 `remote is undefined` 的错误 [^3]。 - **`devTools`** 控制是否允许打开开发者工具。 ```javascript devTools: true ``` 在生产环境中建议关闭此功能以提升性能和安全性 [^4]。 - **`preload`** 指定一个预加载脚本,在渲染进程加载之前执行。该脚本可以安全地访问 Node.js API,并可以通过 `contextBridge` 暴露有限的接口给渲染进程。 ```javascript preload: path.join(__dirname, 'preload.js') ``` 这是推荐的安全方式来在渲染进程中使用 Node.js 功能 [^5]。 ### 完整示例 以下是一个完整的 `BrowserWindow` 创建示例,包含常见的 `webPreferences` 配置: ```javascript const { app, BrowserWindow } = require('electron'); const path = require('path'); function createWindow() { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: true, enableRemoteModule: true, devTools: true, preload: path.join(__dirname, 'preload.js') } }); mainWindow.loadURL('http://localhost:3000'); } app.on('ready', createWindow); ``` ### 安全建议 - **启用上下文隔离**:为了提高安全性,建议始终启用 `contextIsolation`,并结合 `preload` 脚本暴露必要的功能。 - **避免直接暴露 Node.js API**:在渲染进程中应避免直接使用 Node.js 的模块,而是通过 `preload` 和 `contextBridge` 安全地暴露接口 [^5]。 - **限制 `nodeIntegration` 的使用场景**:如果应用不需要在渲染进程中使用 Node.js 功能,建议将 `nodeIntegration` 设置为 `false` [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值