如题,我想用 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 了,神奇。
|