我正在制作一个具有BrowserWindow或Webview的应用程序,允许用户浏览Internet。使用Youtube时,如果单击全屏按钮,我的整个Electron应用程序将变为全屏。不是视频,而是我的整个应用程序,然后退出全屏,我必须使用Youtube的全屏按钮。这是它的外观图像:
在此图像中,我的整个应用程序处于全屏模式。有没有办法阻止这种情况的发生?我喜欢BrowserView本身具有全屏显示的Youtube视频,但我不喜欢我的整个应用程序变为全屏显示。所有带有全屏按钮的视频都会发生这种情况,例如Twitch。
-谢谢
编辑:我发现了一个潜在的临时解决方法。如果将BrowserWindow选项“ fullscreenable”设置为false,那么将fullscreenable:false设置为false,它将阻止BrowserView中的视频使我的应用程序全屏显示,同时仍然填充BrowserView。我仍然对是否还有另一种方法可以实现这一点感兴趣。
答案 0 :(得分:1)
我知道这是旧的,但我有同样的问题。 不幸的是,您找到的选项最简单。
设置fullscreen: false
的问题是,当您实际需要通过窗口控件时,您将失去全屏显示的能力。
有些钩子可以区分窗口调用的全屏和HTML,但是它们是在事实之后并且不可取消(enter-html-full-screen
和enter-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
才能取消。