我正在创建一个应用程序,用户可以在其中通过webview
元素浏览网页。
<webview src='user-generated'></webview>
我希望能够捕获过程中生成的所有请求和响应。在过去的两个小时中,我一直在寻找解决方法,但是没有发现任何与远程相关的东西。
我读过一些有关使用session
来检索会话cookie的知识,并且我曾想过诸如请求和响应之类的其他内容,尽管它似乎没有返回任何有用的信息。
webview.addEventListener('dom-ready', function(){
console.log(remote.getCurrentWindow().webContents.session)
})
有什么方法可以捕获所有请求和响应,最好是使用webview
?
这是我到目前为止所得到的,尽管它返回的似乎是请求或响应,但我不确定是否来自Webview。明天我必须仔细看一下。
ipcMain.on('asynchronous-message', (event, arg) => {
session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => {
event.reply('asynchronous-reply', details)
callback({ requestHeaders: details.requestHeaders })
})
})
ipcRenderer.send('asynchronous-message', webview) // Should I be sending `webview` as the argument?
ipcRenderer.on('asynchronous-reply', (event, payload) => {
console.log(paylod)
})
答案 0 :(得分:0)
您可以在webview会话上访问onBeforeSendHeaders。获取会话的最简单方法是设置webview分区。
<webview src='user-generated' partition='my-webview-partition'></webview>
主要
var ses = session.fromPartition('my-webview-partition');
ses.webRequest.onBeforeRequestHeaders((details, callback) => {
details.requestHeaders['User-Agent'] = 'MyAgent'
callback({ requestHeaders: details.requestHeaders })
});