为什么只有一个BrowserView可以与Electron一起使用?

问题描述 投票:0回答:1

我试图在同一个窗口中并排放置两个BrowserView。此代码运行:

const { app, BrowserWindow, BrowserView } = require('electron');
function createWindow() {
    browserWindow = new BrowserWindow({ width: 1200, height: 600 });
    let browserView1 = new BrowserView({ webPreferences: { nodeIntegration: false }});
    let browserView2 = new BrowserView({ webPreferences: { nodeIntegration: false }});
    browserWindow.setBrowserView(browserView1);
    browserWindow.setBrowserView(browserView2);
    browserView1.setBounds({ x: 0, y: 0, width: 600, height: 600 });
    browserView2.setBounds({ x: 600, y: 0, width: 600, height: 600 });
    browserView1.webContents.loadURL('https://www.example.com');
    browserView2.webContents.loadURL('https://www.google.com');
    browserWindow.on('closed', function () { browserWindow = null; });
}
app.on('ready', createWindow);

但只显示第二个BrowserView

如何同时显示?

javascript google-chrome browser electron
1个回答
1
投票

BrowserView目前是Electron的实验性特征。它的大多数功能仍然是Electron的beta版本。由于这仍然仅在Electron的beta版本中,因此在生产版本中使用是不安全的。

话虽如此,我们仍然可以让它发挥作用。首先,安装Electron beta npm install --save [email protected]

然后更改您的Electron文件:

const { app, BrowserWindow, BrowserView } = require('electron');
function createWindow() {
    browserWindow = new BrowserWindow({ width: 1200, height: 600 });
    let browserView1 = new BrowserView({ webPreferences: { nodeIntegration: false }});
    let browserView2 = new BrowserView({ webPreferences: { nodeIntegration: false }});
    browserWindow.addBrowserView(browserView1);
    browserWindow.addBrowserView(browserView2);
    browserView1.setBounds({ x: 0, y: 0, width: 600, height: 600 });
    browserView2.setBounds({ x: 600, y: 0, width: 600, height: 600 });
    browserView1.webContents.loadURL('https://www.example.com');
    browserView2.webContents.loadURL('https://www.google.com');
    browserWindow.on('closed', function () { browserWindow = null; });
}
app.on('ready', createWindow);

而不是使用setBrowserView()使用addBrowserView()

Feature request on git

© www.soinside.com 2019 - 2024. All rights reserved.