2016-02-27 3 views
3

Мне нужно установить UserAgent в электронном виде, чтобы включить флаг 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 Нет, вам просто нужно предоставить фильтр (или неопределенный) перед параметрами обратных вызовов;) –

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

Для справки в будущем: если вы хотите расширить агент пользователя вместо его записи, вы можете получить исходный пользовательский агент через 'win. webContents.getUserAgent() '. – Tsunamis

Смежные вопросы