【问题标题】:How to fix application-window resizing error for a BrowserView in electronjs?如何修复electronjs中BrowserView的应用程序窗口大小调整错误?
【发布时间】:2019-10-25 12:29:02
【问题描述】:

所以我现在正在写一个电子应用程序。 为了让我的应用程序更流畅一点,我创建了一个BrowserWindow 并只加载了菜单栏和背景。

之后我添加了BrowserView 来显示实际内容。

我的BrowserWindow 的代码:

function createWindow() {
    win = new BrowserWindow({
        width: 800,
        height: 600,
        show: false,
        frame: false,
        webPreferences: {
            nodeIntegration: true
        }
    })

    win.loadFile(path.join(__dirname, 'views/index.pug'));

    win.on('closed', () => {
        win = null;
    })

    win.once('ready-to-show', () => {
        win.show();
    })
}

我的BrowserView的代码:

function createViews() {
    contentView = new BrowserView({ webPreferences: { nodeIntegration: true } });

    win.addBrowserView(contentView);

    contentView.setBounds({ x: 0, y: 23, width: win.getBounds().width, height: win.getBounds().height - 23 });
    contentView.setAutoResize({ width: true, height: true });

    contentView.webContents.loadFile(path.join(__dirname, 'views/imageGallery.pug'));
}

(如果有剧透功能隐藏代码:对不起,我没找到)


一旦我创建了它按预期工作的窗口,通过鼠标拖动正常调整大小也可以正常工作。

现在我的问题是,一旦我使用 win.maximize()win.unmaximize() 函数最大化或取消最大化我的窗口,我的 BrowserView 就会调整大小。但是调整大小不再适合BrowserWindowBrowserView的内容在右边被剪掉了。

最大化后的窗口:

未最大化后的窗口:

【问题讨论】:

  • 我也有同样的问题...你找到解决办法了吗?

标签: javascript node.js electron


【解决方案1】:

    function createWindow() {
      // Create the browser window.
      const mainWindow = new BrowserWindow({ useContentSize: true });
      const view = new BrowserView();
      mainWindow.setBrowserView(view);
      view.setBounds({ x: 0, y: 0, width: 800, height: 600 });
      view.setAutoResize({ width: true, height: true });
      view.webContents.loadURL("https://youtube.com");
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多