【问题标题】:How to set electron UserAgent如何设置电子用户代理
【发布时间】:2016-06-10 21:37:58
【问题描述】:

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

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

【问题讨论】:

    标签: javascript touch chromium multi-touch electron


    【解决方案1】:

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

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

    【讨论】:

    • 确保您的版本 >=0.36.1。否则它将无法正常工作。只是花了太长时间才弄清楚。
    • @ccnokes 不,你只需要在回调参数之前提供一个过滤器(或未定义);)
    • 另请注意,在应用程序ready 事件触发之前,您无法访问session
    【解决方案2】:

    在加载 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
       });
    }
    

    【讨论】:

    • 供以后参考:如果您想扩展用户代理而不是覆盖它,您可以通过win.webContents.getUserAgent()获取原始用户代理。
    【解决方案3】:

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

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

    适用于 electron 3.0.4 以前的解决方案不适合我。


    电子 8.2.5 更新

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

    mainWindow.webContents.userAgent //to get
    mainWindow.webContents.userAgent = "Something" //to set
    

    【讨论】:

      【解决方案4】:

      如果你使用<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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多