如何使用Electron呈现网页而不向用户显示这些网页?

时间:2017-06-18 12:42:27

标签: javascript webview electron

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

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

我尝试offscreen rendering启动BrowserWindow,但它实际上创建了另一个没有标题栏的窗口,如下所示:enter image description here

任何想法如何制作这些作品或其他方法?

1 个答案:

答案 0 :(得分:1)

试试这个。此示例将文件另存为本地计算机。

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)
})