将电子NativeImage从<webview> .capturePage()转换为base64或dataURL

时间:2019-09-10 20:13:50

标签: javascript webview electron

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

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

我得到:

  

ph.toDataURL()不是函数

我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

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()返回电子4.0的空对象。解决方法是:

<webview>.getWebContents().capturePage()