我正在使用the demo app作为模板来创建Electronjs应用。即
我的应用程序文件夹如下所示:
.
|--_js
|--wv1_utils.js
|--wv2_utils.js
|--_sections
|-- webview1.html
|-- webview2.html
|--index.html
|--main.js
|--renderer.js
每个webview..html
都包含一个<webview>
标记,并与各自的index.html
一起加载到wv_utils..js
中。
我想要做的是将代理动态分配给已加载到webview标记中的不同url。但是,这样做尚未成功。
根据Electron的文档,我应该能够使用webview标记的partition
属性,并与会话对象一起设置代理。 this SO post中也确认了这个想法。
因此,我的代码如下所示:
<webview id="idWV1" partition="persist:webviewsession"></webview>
wv1_utils.js
const {session} = window.require('electron').remote;
var my_proxy = prxyHost + ':' + prxyPort;
webView1 = document.getElementById("idWV1");
session.fromPartition('webviewsession').setProxy({proxyRules:my_proxy}, function (){
webView1.src = "https://whatsmyipaddress.com/";
});
但是,这似乎不起作用-页面加载了空的正文和标题,而在任何地方都没有错误。我似乎无法弄清的另一个重要问题是,如果代理需要身份验证,如何使用用户名/密码。