2016-02-27 94 views
3

我需要设置用户代理的电子为包括touch标志,因为我写的触摸屏的应用程序,它似乎并没有自动确实检测到它是一个触摸屏上运行。如何设置电子的UserAgent

任何帮助将是不错的,我已经尝试过在BrowserWindow.loadURL选项PARAM设置它。

回答

10

您可以设置User-Agent头使用onBeforeSendHeaders的主要过程:

import { session } from 'electron'; 

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

请确保您的版本> = 0.36.1。否则它将无法工作。刚花了太多的时间搞清楚了这一点。 – ccnokes

+0

@ccnokes没有,你只需要提供前回调参数的过滤器(或undefined);) –

8

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

以供将来参考:如果要延长,而不是覆盖它的用户代理,你可以通过'双赢得到原来的用户代理。 webContents.getUserAgent()'。 – Tsunamis

相关问题