【问题标题】:How to stop Electron Window from going Fullscreen when using the Youtube fullscreen button inside of a BrowserView or Webview在 BrowserView 或 Webview 中使用 Youtube 全屏按钮时如何阻止电子窗口进入全屏状态
【发布时间】:2019-10-05 15:22:22
【问题描述】:

我正在制作一个允许用户浏览互联网的 BrowserWindow 或 Webview 的应用程序。使用 Youtube 时,如果单击全屏按钮,我的整个 Electron 应用程序都会全屏显示。不是视频,而是我的整个应用程序,然后要退出全屏,我必须使用 Youtube 的全屏按钮。这是它的外观图片:

在这张图片中,我的整个应用程序处于全屏模式。有没有办法阻止这种情况发生?我喜欢 BrowserView 本身有全屏的 Youtube 视频,但我不喜欢我的整个应用程序变成全屏。所有带有全屏按钮的视频都会出现这种情况,例如 Twitch。

-谢谢

编辑:我发现了一个潜在的临时修复。如果我将 BrowserWindow 选项“全屏”设置为 false so fullscreenable: false,它会阻止 BrowserView 中的视频能够使我的应用程序全屏,同时仍然填满 BrowserView。我仍然对是否有其他方法来实现这一点感兴趣。

【问题讨论】:

    标签: javascript electron


    【解决方案1】:

    我知道这是旧的,但我有同样的问题。 不幸的是,您找到的选项是最直接的。

    设置fullscreen: false 的问题是,当您真正想要通过窗口控件进入全屏时,您无法进入全屏。

    有一些钩子可以区分窗口调用的全屏与 HTML,但它们是事后的,不能取消(enter-html-full-screenenter-full-screen)。

    我使用的选项是这样的:

      win.on('enter-html-full-screen', function () {
        if (win.isFullScreen()) {
          setTimeout(function() {
            win.setFullScreen(false)
            win.maximize()
          }, 1000)
        }
      })
    

    您必须等待窗口完成移动到全屏,因此会超时。如果您注销isFullScreen,您将看到它立即被调用,但是当您尝试将其设置为 false 而没有超时时,您会立即收到一条日志,说明窗口不是全屏。

    此解决方案将窗口最大化,这可能不是我们所希望的。您可以改为将窗口恢复为以前的尺寸,但您会得到橡皮筋效果。

    另一个选项可能是在您使用窗口控件时将窗口切换为fullScreen: true,然后通过 IPC 将其切换回来,但我找不到直接的方法来做到这一点。我们需要一个pre-enter-html-fullscreen,我们可以取消。

    【讨论】:

      猜你喜欢
      • 2017-06-15
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      相关资源
      最近更新 更多