我应该如何在不向用户显示的情况下使用 Electron 呈现网页?

pup*_*eno 5 javascript webview electron

我需要在 Electron 应用程序中呈现一个网页并截取屏幕截图而不向用户显示此网页。我该怎么做?最好的方法是什么?

我尝试创建一个 webview 元素并通过给它一个绝对定位和 -99999px 顶部和左侧来隐藏,但是 capturePage 方法时不时地永远停止。当我通过使用检查器删除该 CSS 使其可见时,它看起来是空白的,但页面会立即呈现并调用回调。

我尝试过屏幕外渲染启动一个 BrowserWindow,但它实际上创建了另一个没有标题栏的窗口,如下所示:在此处输入图片说明

任何想法如何使这些工作或其他方法?

小智 3

尝试这个。此示例将文件以 png 格式保存到本地计算机。

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

app.disableHardwareAcceleration()

let win
app.once('ready', () => {
    win = new BrowserWindow({
        webPreferences: {
            offscreen: true
        }
    })
    win.loadURL('http://github.com')
    win.webContents.on('paint', (event, dirty, image) => {
        // Example Code
        fs.writeFile('ex.png', image.toPNG(), (err) => {
            if (err) throw err;
            console.log('The file has been saved!');
        })
    })
    win.webContents.setFrameRate(30)
})
Run Code Online (Sandbox Code Playgroud)