electron学习笔记
发布时间:2022-07-26, 16:21:04 分类:VIM | 编辑 off 网址 | 辅助
正文 3143字数 227,302阅读
electron开发问题记录
1. 如何开启debugger
2. 如何加载网页
3. 报错:ERROR:gpu_init.cc(481)] Passthrough is not supported, GL is disabled, ANGLE is
在main.js中禁用
4. 隐藏标题栏后,如何实现窗口拖动
在要拖动html元素上,加上样式: 即可,通过样式: 来控制哪些元素不拖动
4. Electron官方中文文档地址
快速入门|Electron
1. 如何开启debugger
win.webContents.openDevTools()
Run code
Cut to clipboard
2. 如何加载网页
win.loadURL("http://www.baidu.com")
Run code
Cut to clipboard
3. 报错:ERROR:gpu_init.cc(481)] Passthrough is not supported, GL is disabled, ANGLE is
在main.js中禁用
const { app, BrowserWindow, ipcMain } = require('electron')
// 禁用当前应用程序的硬件加速
app.disableHardwareAcceleration()
Run code
Cut to clipboard
4. 隐藏标题栏后,如何实现窗口拖动
在要拖动html元素上,加上样式:
-webkit-app-region: drag
Run code
Cut to clipboard
-webkit-app-region: no-drag
Run code
Cut to clipboard
<div style="-webkit-app-region: drag">
<div style="-webkit-app-region: no-drag"></div>
</div>
Run code
Cut to clipboard
4. Electron官方中文文档地址
快速入门|Electron
实现全屏fullscreen
simpleFullscreen是fullscreen的一个特殊形态,简单全屏是不按套路出牌的
fullscreen是按套路出牌的
那么fullscreenable属性,可以控制fullscreen: true属性,
还可以控制setFullScreen(true)函数
electron实现全屏fullscreen
mainWindow = new BrowserWindow({
//...
fullscreenable:true,
fullscreen: true,
simpleFullscreen:true,
});
Run code
Cut to clipboard
simpleFullscreen是fullscreen的一个特殊形态,简单全屏是不按套路出牌的
fullscreen是按套路出牌的
那么fullscreenable属性,可以控制fullscreen: true属性,
还可以控制setFullScreen(true)函数
electron实现全屏fullscreen
菜单栏隐藏
1.Windows隐藏方法
2.macOs的菜单隐藏方法
it's an os x only method (documentation)
1.Windows隐藏方法
const {electron,Menu,debug} = require('electron');
Menu.setApplicationMenu(null)
Run code
Cut to clipboard
2.macOs的菜单隐藏方法
app.dock.hide();到目前为止 只发现这一种处理方式
Run code
Cut to clipboard
it's an os x only method (documentation)
关闭最小化
electron应用是如何保持单实例启动的
最近在解决一个同一工程发布为多个客户端的问题时,涉及到了electron单实例启动的原理,抛开electron启动的一系列生命周期,那么electron应用是靠什么来确定启动时始终只有一个单实例的
首先在主进程app.ready事件之前调用app.requestSingleInstanceLock()方法
electron会自动检测是否启动了多个实例,返回一个布尔值;
如果为true,则调用app.quit(),应用退出。
electron 如何实现单实例?两种方案解决单实例问题
限制electron应用只能启动一次
问题描述
我想开发一个类似win7自带的桌面挂件,例如雨滴桌面的那种,但是win+D(或者右下角的返回桌面)会导致其最小化。
问题出现的环境背景及自己尝试过哪些方法
我试过官方的文档里minimizable 只是没有最小化按钮,我试了下右下角的返回桌面或者win+D,都会导致程序最小化。之后有人提醒我,如果检测到最小化再自动还原窗口效果如何?我自己也试了一下
mainWindow.on('minimize', () => {
console.log('最小化')
mainWindow.restore()
mainWindow.moveTop()
})
结果却很有趣,,如果点击最小化按钮,会消失立刻又弹出来,有过程动画,勉强算是达到效果。但是如果通过返回桌面或win+D的话,会导致最小化,不再显示。但是发现了有趣的事,如果我点击任务栏的其他窗口,想让其显示,比如win+D后我点qq聊点窗口,这时候聊天窗口和electron程序一起出现了,控制台报了两次最小化..........
之后我又进行尝试,发现窗口属性如果minimizable: false,alwaysOnTop: true同时存在的话(只存在其中一个达不到效果),达到了预期效果,并且没有过程动画,很满意。但是,这东西肯定不能一直置顶啊,要类似于嵌在壁纸里的效果,所以还是不行。
我实在是没思路了,要不可不可以像c++一样,设定父窗口为系统桌面呢?
Run code
Cut to clipboard
保持单实例启动
Run code
Cut to clipboard
electron应用是如何保持单实例启动的
最近在解决一个同一工程发布为多个客户端的问题时,涉及到了electron单实例启动的原理,抛开electron启动的一系列生命周期,那么electron应用是靠什么来确定启动时始终只有一个单实例的
首先在主进程app.ready事件之前调用app.requestSingleInstanceLock()方法
electron会自动检测是否启动了多个实例,返回一个布尔值;
如果为true,则调用app.quit(),应用退出。
electron 如何实现单实例?两种方案解决单实例问题
限制electron应用只能启动一次
const gotTheLock = app.requestSingleInstanceLock()
if (!gotTheLock) {
app.quit()
}
Run code
Cut to clipboard
禁用Windows键
node.js - 在Electron中禁用Windows键
我正在制作一个 Electron 桌面应用程序。我想在应用程序打开时禁用Windows键和功能键
我尝试使用以下代码...它注册了事件,但Windows菜单仍然打开
您可以尝试这样做,但不幸的是,它将成为全局快捷方式,这意味着当窗口没有焦点时,
它仍会被注册。尝试放入console.log()看看它何时触发。 win是 Electron 窗口变量
可以在此处查看文档:docs
或尝试在此处使用此模块:electron-localshortcut
node.js - 在Electron中禁用Windows键
我正在制作一个 Electron 桌面应用程序。我想在应用程序打开时禁用Windows键和功能键
我尝试使用以下代码...它注册了事件,但Windows菜单仍然打开
$(document).keydown(function(e){
if (e.keyCode == 37) {
alert( "windows key pressed" );
return false;
}
});
Run code
Cut to clipboard
您可以尝试这样做,但不幸的是,它将成为全局快捷方式,这意味着当窗口没有焦点时,
它仍会被注册。尝试放入console.log()看看它何时触发。 win是 Electron 窗口变量
const {app, globalShortcut} = require('electron');
win = new BrowserWindow();
globalShortcut.register('Super', () => {
if (win.isFocused()) {
// do something
}
});
Run code
Cut to clipboard
可以在此处查看文档:docs
或尝试在此处使用此模块:electron-localshortcut
electronLocalshortcut.register(win, 'Super', () => {
console.log('Windows Button pressed');
return false;
});
Run code
Cut to clipboard
(支付宝)给作者钱财以资鼓励 (微信)→
暂无评论 »