因此,我尝试用 Electron 方式快照Web View ,然后将其显示在Web View 之外的<img>上。但是当我拥有NativeImage时,我无法将其转换为dataUrl
这是我尝试过的:

const electron = require("electron");
const {remote, nativeImage} = electron;
...
var wv = document.getElementById("wv");
var ph = wv.capturePage();
var pr = ph.toDataURL();

我得到:



我做错了什么?谢谢!

最佳答案

capturePage()返回一个promise或接收一个回调,因此您必须等待它解决(awaitthen()):

var ph = await wv.capturePage();
var pr = ph.toDataURL();

或在回调中获取您的数据网址:
var ph = wv.capturePage(function (ph) {
  var pr = ph.toDataURL();
});

编辑:

正如here中发布的那样,函数<webview>.capturePage()返回 Electron 4.0的空对象似乎是一个已知问题。解决方法是:
<webview>.getWebContents().capturePage()

09-04 04:32