electron踩坑记录

electron踩坑记录


[TOC]

文档

  • electron官方文档:https://electronjs.org/docs
  • github地址:https://github.com/SimulatedGREG/vue-electron
  • electron-vue: https://simulatedgreg.gitbooks.io/electron-vue/content/cn/
  • Electron中BrowserWindow对象的所有可设置项:https://www.jianshu.com/p/0387bd0f8a70?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

创建项目

  • 创建命令:vue init simulatedgreg/electron-vue
  • 文档:https://www.jianshu.com/p/7f64daa9264c

Electron如何隐藏窗体的菜单栏

要创建无边框窗口,只需在src/main/index.js中的BrowserWindow的options中将frame设置为 false

自定义区域拖拽

.titlebar {
  -webkit-user-select: none;
  -webkit-app-region: drag;
}
  • 参考文档:https://blog.csdn.net/fukaiit/article/details/91351448

自定义最大最小关闭窗口功能

方法一 通信

在index.js中

import { ipcMain } from 'electron'
ipcMain.on('min', e => mainWindow.minimize()) // 最小化窗口
ipcMain.on('max', e => mainWindow.maximize()) // 窗口最大化
ipcMain.on('close', e => mainWindow.close()) // 关闭窗口
ipcMain.on('resetWindow', e => mainWindow.unmaximize()) // 还原窗口
// 使用方式
const { ipcRenderer } = require('electron')
ipcRenderer.send('min')

方法二

const electron = require('electron')
const remote = electron.remote
remote.getCurrentWindow().maximize() // 最大化

监听窗口变化

  • underscore文档: https://underscorejs.org/
  • 判断窗口是否最大化: remote.getCurrentWindow().isMaximized()
// 使用依赖 underscore.js
const _ = require('underscore')
let currentWindow = remote.getCurrentWindow().removeAllListeners()
// 设置100毫秒内只触发一次
currentWindow.on('resize', _.debounce(() => {
}, 100))

编译问题

npm run build失败 下载依赖超时 403

  • 加速国内github访问: https://blog.csdn.net/w958660278/article/details/81161224
  • 修改本机的hosts文件 增加以下内容
192.30.253.112 github.com
185.199.108.153 assets-cdn.github.com
151.101.185.194 github.global.ssl.fastly.net
  • 记得重启cmd

链接数据库 sqlite3

已解决 请查看另一篇文章

你可能感兴趣的:(electron踩坑记录)