X11 xorg 电子应用程序无法全屏打开。

3

我们有一个运行在X11上的Electron应用程序,没有窗口管理器 -> 直接在XServer上运行。

我们无法让Electron进入全屏模式!

main.js

const { app, BrowserWindow } = require('electron')

let win;

function createWindow () {
    // Create the browser window.
    win = new BrowserWindow({
        width: 400,
        height: 300,
        backgroundColor: '#ffffff',
        fullscreen:true,
        "web-preferences": { "web-security": false }
        //icon: `file://${__dirname}/dist/assets/logo.png`
    })


    win.loadFile(`app/index.html`)

    //// uncomment below to open the DevTools.
    win.webContents.openDevTools()

    // Event when the window is closed.
    win.on('closed', function () {
        win = null
    })
}

// Create window on electron intialization
app.on('ready', createWindow)

我们还尝试了使用setFullscreen,但都没有效果。

xserver使用整个屏幕,所以这方面没有问题。Chromium全屏启动也没有问题。 屏幕截图

如果我们使用窗口管理器启动Electron,然后按F11键将其最大化,但仍无法在程序中实现全屏。

我们尝试了:

  • 在BrowserWindow构造函数中使用屏幕分辨率设置宽度和高度。
  • 使用.setKiosk(true)设置Kiosk模式,并在选项中设置kiosk:true
  • 使用.setFullscreen(true)设置全屏模式并设置fullscreen:true

1
你好,我知道这是一个老问题,但是你是如何在Raspbian Lite上运行Electron应用程序的?我只安装了X服务器并通过SSH连接它。我使用了Electron Packager并构建了软件包,但是在复制文件后它无法正常工作。我需要一个非常简化的Debian版本,而且我没有安装Node,因为我认为运行打包应用程序不需要它。 - Rati_Ge
我们甚至没有打包它。这样做是一个不好的实践,但这只是一个学校项目,所以我们并不在意 => 我们只是从 "electron ." 开始,没有打包程序或其他任何东西。@Rati_Ge - filip
1
我明白,但不理解为什么打包或创建.deb文件是一个坏主意。毕竟,如果这是一个商业产品,你不能强迫客户下载完整的节点环境和npm,并在安装期间恢复工作人员并在设备上留下源代码。 - Rati_Ge
不不不!打包是正确的方式!!我的意思是我没有打包它,因为那只是一个学校项目。这就是为什么我不能帮你。打包是最佳实践。现在我读了我的评论,我应该重新表达一下哈哈。 - filip
2个回答

3

这可能不是你想要的,但有一个叫做kiosk的选项,它基本上是全屏模式,页面覆盖整个屏幕。此外,你不能在kiosk模式下退出。

要激活它,你可以调用setKiosk(true)。或者在浏览器窗口选项中设置kiosk:true

setKiosk文档。


1
问题是应用程序没有从Electron本身运行,我的脚本启动了index.html文件,而不是应用程序!

1
很高兴听到你解决了问题!如果你对答案满意,可以通过点击投票按钮下方的绿色勾选来接受它。 - Joshua
1
@Mike 我得等12小时才能标记自己的问题 :p - filip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接