electron如何让你窗口总是显示在最前面【mac解决全屏窗口alwaysOnTop参数不起作用】

本文主要是介绍electron如何让你窗口总是显示在最前面【mac解决全屏窗口alwaysOnTop参数不起作用】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

你创建了一个使用Electron框架的应用程序,并希望它在以下情况下始终保持可见:

  • 在切换工作区(桌面)时可见
  • 在其他应用程序之上显示
  • 当其他应用程序全屏显示时,它也显示在顶部
  • 当Keynote处于演示模式时,它也能显示在顶部
    特别是当Keynote处于演示模式时,要实现这一点比较困难。这是最终的解决方案。

你在main.js中添加了设置,这是在package.json中定义的main部分。

const { app, BrowserWindow } = require("electron");
const is_mac = process.platform==='darwin'
if(is_mac) {app.dock.hide()                                     // - 1 - 
}
const MAIN_WINDOWS_WIDTH = 300;
const MAIN_WINDOWS_HEIGHT = 350;
function createClapWindow() {// 创建浏览器窗口。const mainWindow = new BrowserWindow({width: MAIN_WINDOWS_WIDTH,height: MAIN_WINDOWS_HEIGHT,webPreferences: {preload: path.join(__dirname, 'preload.js'),}})mainWindow.setAlwaysOnTop(true, "screen-saver")     // - 2 -mainWindow.setVisibleOnAllWorkspaces(true)          // - 3 -mainWindow.loadFile('public/reaction.html')
}
app.whenReady().then(() => {createClapWindow()
})
  1. app.dock.hide()
    这个设置允许macOS在全屏模式下显示在顶部。由于Windows操作系统没有这个设置,所以在设置之前要检查是否是macOS。这个设置只适用于macOS。

  2. mainWindow.setAlwaysOnTop(true, "screen-saver")
    这个设置允许在Keynote演示模式下显示在顶部。BrowserWindow中有一项alwaysOnTop。当我设置为true时,其他应用程序会被覆盖在顶部,但Keynote演示模式下不行。所以我需要设置mainWindow.setAlwaysOnTop(true, "screen-saver")

  3. mainWindow.setVisibleOnAllWorkspaces(true)
    这个设置允许在切换到其他工作区时显示。

代码:

function alwaysOnTop(app, win) {const is_mac = process.platform==='darwin'if(is_mac) {app.dock.hide()                                     // - 1 - }win.setAlwaysOnTop(true, "screen-saver")     // - 2 -win.setVisibleOnAllWorkspaces(true)   
}

这篇关于electron如何让你窗口总是显示在最前面【mac解决全屏窗口alwaysOnTop参数不起作用】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044662

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo