如题,我想用 Electron 中 webRequest.onBeforeRequest 重定向某个网站的 swf 资源。之前用 Chrome 插件实现时,用 chrome.webRequest.onBeforeRequest.addListener 成功达到想要的效果,但是用 Electron 实现时,console.log("Test Passed.")
这句话可以被正常触发,但是最终加载的资源却仍然是原地址的资源。
const { app, BrowserWindow } = require('electron') const { resolve } = require('path') app.commandLine.appendSwitch('ppapi-flash-path', resolve(__dirname, 'pepflashplayer64_32_0_0_314.dll')) app.commandLine.appendSwitch('ppapi-flash-version', '32.0.0.314') function createWindow() { win = new BrowserWindow({ autoHideMenuBar: true, show: false, fullscreen: false, webPreferences: {plugins: true} }) win.maximize() win.webContents.openDevTools() win.webContents.session.webRequest.onBeforeRequest(async ({url}, callback) => { var reg = new RegExp("http://<source-domain>/test~[0-9]*.swf", 'g') if(reg.test(url)) console.log("Test Passed.") callback(reg.test(url) ? {redirectURL: "http://<target-domain>/test.swf"} : {}) }) win.loadURL('http://<source-domain>') win.on('closed', () => {win = null}) } app.on('ready', createWindow)
1 skylee03 OP 把调试输出那句注释掉就 work 了,神奇。 |