如何设置电子用户代理

How to set electron UserAgent

本文关键字:用户代理 设置 何设置      更新时间:2023-09-26

我需要在电子中设置UserAgent以包含touch标志,因为我正在为触摸屏编写应用程序,并且它似乎没有自动检测到它正在触摸屏上运行。

任何帮助都会很好,我已经尝试在浏览器窗口.loadURL 选项参数中设置它。

加载 URL 时只需使用选项对象。

function createWindow () {
   win = new BrowserWindow({width: 800, height: 600});
   win.loadURL('http://www.whoishostingthis.com/tools/user-agent/',
     {userAgent: 'Chrome'});
   win.on('closed', () => {
     win = null
   });
}

您可以使用 onBeforeSendHeaders 在主进程中设置 User-Agent 标头:

import { session } from 'electron';
session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => {
  details.requestHeaders['User-Agent'] = 'SuperDuperAgent';
  callback({ cancel: false, requestHeaders: details.requestHeaders });
});

在加载文件之前,可以调用 BrowserWindowInstance.webContent.setUserAgent()

mainWindow.webContents.setUserAgent(mainWindow.webContents.getUserAgent() + " Custom Value");
mainWindow.loadFile('renderer/index.html');

适用于电子 3.0.4 以前的解决方案对我不起作用。


电子 8.2.5 更新

在较新的版本中,将弃用 setUserAgent 方法。相反,请使用它;

mainWindow.webContents.userAgent //to get
mainWindow.webContents.userAgent = "Something" //to set
如果您

使用的是<webview>标签,请使用它,这对我来说效果更好

<webview src="https://www.github.com/" useragent="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko"></webview>