Read It 开发日志 002
通过前面的学习我们得到了一个简单的客户端程序,里面展示了vue3的项目生成的页面。今天我们继续开发Read It 项目,添加一些基础配置。
一、开发准备
1、知识点
- 依赖库
- electron-win-state
- path
- Electron
- webContents.openDevTools()
- Preload
二、打开浏览器控制台
javascript
win.webContents.openDevTools();
操作步骤
- 在main.js里createWindow函数里设置打开浏览器控制台.
- 设置成功后,能看到浏览器控制台
三、记录窗口大小
我们前面写的窗口的宽高是固定的 1000*800 这样每次启动都是这个位置和大小,对于用户来说很不友好.所以为了提高用户体验我们用electron-win-state插件来实现,用户关闭窗口是什么位置和大小,再次打开还是一样的.
1、安装 electron-win-state 依赖
shell
yarn add electron-win-state -D // "electron-win-state": "^1.1.22"
2、导入依赖
在main.js中导入
javascript
//引入插件 作用:记录窗口的位置大小
const WinState = require('electron-win-state').default;
//创建窗口
const createWindow = () => {
// 设置默认窗口大小
const winState = new WinState({
defaultWidth: 1000,
defaultHeight: 800,
});
const win = new BrowserWindow({
...winState.winOptions,
});
//将窗口位置大小存起来
winState.manage(win);
};
main.js 完整代码
javascript
// 我们从 electron 里导出 app 和 BrowserWindow
//app应用模块
//BrowserWindow 浏览器串口模块
const {app, BrowserWindow} = require('electron');
//引入插件 作用:记录窗口的位置大小
const WinState = require('electron-win-state').default;
//创建窗口
const createWindow = () => {
// 设置默认窗口大小
const winState = new WinState({
defaultWidth: 1000,
defaultHeight: 800,
});
const win = new BrowserWindow({
...winState.winOptions,
// width: 1000, // 窗口默认宽度
// height: 800, // 窗口默认高度
});
//将窗口位置大小存起来
winState.manage(win);
// 给窗口装载页面
win.loadURL('http://localhost:5173/');
// win.loadFile('./renderer/index.html')
//自动打开发开工具
win.webContents.openDevTools();
};
//应用就绪,可以装载窗口了
app.whenReady().then(() => {
createWindow();
});
注意
完成上述代码就可手动拖拽窗口位置和大小,关闭窗口后重新打开会是上次的位置和大小,代码改完记得重启项目不然有可能不生效。😊别问我咋知道的。
四、配置 preload
预加载脚本/桥接文件
因为渲染程序和主程序直接传递消息有严重的安全隐患,所以要通过这里的’桥’文件当工具人.
1、创建preload/index.js
在跟目录下创建 文件夹 preload 然后在里面创建 index.js
/preload/index.js
javascript
console.log(0);
2、导入 preload/index.js
在main.js中导入
javascript
const {resolve} = require('path');
//创建窗口
const createWindow = () => {
const win = new BrowserWindow({
webPreferences: {
// 在页面运行其他脚本之前预先加载指定的脚本
// 桥接文件
preload: resolve(__dirname, './preload/index.js'),
},
});
};
main.js 完整代码
javascript
// 我们从 electron 里导出 app 和 BrowserWindow
//app应用模块
//BrowserWindow 浏览器串口模块
const {app, BrowserWindow} = require('electron');
const {resolve} = require('path');
//引入插件 作用:记录窗口的位置大小
const WinState = require('electron-win-state').default;
//创建窗口
const createWindow = () => {
// 设置默认窗口大小
const winState = new WinState({
defaultWidth: 1000,
defaultHeight: 800,
});
const win = new BrowserWindow({
...winState.winOptions,
// width: 1000, // 窗口默认宽度
// height: 800, // 窗口默认高度
webPreferences: {
// 在页面运行其他脚本之前预先加载指定的脚本
// 桥接文件
preload: resolve(__dirname, './preload/index.js'),
},
});
//将窗口位置大小存起来
winState.manage(win);
// 给窗口装载页面
win.loadURL('http://localhost:5173/');
// win.loadFile('./renderer/index.html')
//自动打开发开工具
win.webContents.openDevTools();
};
//应用就绪,可以装载窗口了
app.whenReady().then(() => {
createWindow();
});