Electron:details.webContentsId在发行版中消失(session.webRequest.onBeforeRequest事件)
我在一个项目中工作,在这个项目中,我需要加载几个共享同一会话(类型为“persist:id”)的不同网站。我开发了一个adblock系统,该系统在webview级别工作,其工作方式如下:Electron:details.webContentsId在发行版中消失(session.webRequest.onBeforeRequest事件),electron,release,development-environment,web-content,Electron,Release,Development Environment,Web Content,我在一个项目中工作,在这个项目中,我需要加载几个共享同一会话(类型为“persist:id”)的不同网站。我开发了一个adblock系统,该系统在webview级别工作,其工作方式如下: let mySession = session.fromPartition(‘persist:id’); session.webRequest.onBeforeRequest(['*://*./*'], (details, cb) => { if (adBlockActiveForSe
let mySession = session.fromPartition(‘persist:id’);
session.webRequest.onBeforeRequest(['*://*./*'], (details, cb) => {
if (adBlockActiveForSession(details.webContentsId)){
// adblock operations
}
}
此在开发中起作用,并带有生产标志。但是,当我创建一个发布/可执行文件时,它不起作用。我注意到,在发行版中,细节没有“webContentsId”,但在开发中有
我还检查了,它说webContentsId是onBeforeRequest回调中的可选值
为什么它在开发中有效,但在创建发行版时无效?何时可以在参数详细信息中访问webContentsId,何时不能?在做发布包时,我应该使用一些标志?我应该认为这是一个bug吗?有人经历过同样的问题吗
多谢各位
注意:为了确保webview有其webContent id,在加载url之前,我加载一个空站点,在dom就绪之后,我开始加载真正的url
操作系统: 在Ubuntu、Mac中开发,在Mac、Windows中发布。两个版本都有相同的问题 预期行为 onBeforeRequest应返回创建请求的webContent的信息。该信息位于inside details.webContentsId中 实际行为
onBeforeRequest在开发版本中工作且产品处于打开状态时返回它,但是,当执行包以创建发布时,onBeforeRequest不会返回执行请求的webContent的webContent SID这似乎是electron v3.0.0中引入的错误。我已经打开了一个bug:我在过去打开了一个bug,但他们并不认为它是一个bug。但我认为这很可能是我的措辞。问题是,我甚至在他们的论坛上发布了这个问题,但没有人回复,所以这个问题已经流传了好几个月了,现在我提供了一个最小的修改,这是查看bug的最好方法。我看了你的bug报告,我觉得它太模糊了,无法采取行动