Webview Electron如何设置设备类型用户代理

Webview Electron如何设置设备类型用户代理,webview,electron,user-agent,Webview,Electron,User Agent,我正在使用electron制作一个web浏览器,我想知道是否有一种方法可以让electron report特定的用户代理信息欺骗网站,使其认为它们是在手机上而不是桌面上呈现的。非常感谢您的帮助。有几种方法可以做到这一点: 1) 使用浏览器窗口对象 win = new BrowserWindow({width: 800, height: 600}); win.loadURL('http://my-website/foo.html', { userAgent: 'MyFakeAgent/1.

我正在使用electron制作一个web浏览器,我想知道是否有一种方法可以让electron report特定的用户代理信息欺骗网站,使其认为它们是在手机上而不是桌面上呈现的。非常感谢您的帮助。

有几种方法可以做到这一点:

1) 使用
浏览器窗口
对象

win = new BrowserWindow({width: 800, height: 600});
win.loadURL('http://my-website/foo.html', {
    userAgent: 'MyFakeAgent/1.0'
});
2) 在一个


另一个解决方案是处理BrowserWindow中的所有webview实例(在下面的代码中称为
mainWindow


const getUserAgentString=()=>{
让userAgentString='ElectronApp/'+app.getVersion()
userAgentString+=“Electron/”+process.versions.Electron
userAgentString+=“Chrome/”+process.versions.Chrome
userAgentString+=“Node.js/”+process.versions.Node
返回userAgentString
}
//其中mainWindow=新BrowserWindow(browserWindowOptions)
main window.webContents.on('did-attach-webview',函数(事件,webContents){
webContents.userAgent=getUserAgentString()
})
<webview src="http://my-website/foo.html" useragent="MyFakeAgent/1.0"></webview>
import { session } from 'electron';

session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => {
    details.requestHeaders['User-Agent'] = 'MyFakeAgent/1.0';
    callback({
        cancel: false,
        requestHeaders: details.requestHeaders
    });
});