我正在尝试在 Electron 的窗口上使用 capturePage,当该窗口不可见时,因为它完全被其他窗口遮挡,它会转储一个空的 PNG。
我在创建窗口时尝试单独传递这些选项,但它们没有区别:
useContentSize: true,
enableLargerThanScreen: true
webPreferences: {
offscreen: true
webgl: false
}
Run Code Online (Sandbox Code Playgroud)
任何想法如何使它工作?
以下代码也适用于隐藏的、屏幕外的和可见的浏览器窗口,即使它们被其他窗口覆盖
const {app, BrowserWindow} = require('electron')
const fs = require('fs')
app.on('ready', () => {
let win = new BrowserWindow({
show: false // or true
})
win.webContents.on('did-stop-loading', () => {
win.capturePage((image) => {
fs.writeFile('test.png', image.toPNG(), (err) => {
if (err) throw err
console.log('It\'s saved!')
app.quit()
})
})
})
win.loadURL('http://github.com')
})
Run Code Online (Sandbox Code Playgroud)
如果您收到带有此代码的空 PNG,则表示浏览器窗口尚未准备好进行捕获。你的情况也可能是这样!
capturePage 有时在较旧的电子版本中创建的图像中似乎缺少一些 webview 部分(在 1.8.4 中体验过)
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |