You can navigate to the page using Navigate
method and pass a suitable User-Agent
string as additionalHeaders
parameter.
The trick is useful for sites which detect mobile mode at server-side based on user-agent string. For some sites which doesn't detect mobile mode and only have client-side responsive design which is based on browser size, you can resize the browser control to a suitable size to show mobile view.
Example
Here is an example of user agent string of Edge on Windows Phone 10.
You may want to use different user agent.
var additionalHeaders = "User-Agent:Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; " +
"Microsoft; Lumia 950 XL Dual SIM) AppleWebKit/537.36 (KHTML, like Gecko) " +
"Chrome/52.0.2743.116 Mobile Safari/537.36 Edge/15.15063
";
this.webBrowser1.Navigate("http://www.stackoverflow.com", null, null, additionalHeaders);
As result you see stackoverflow site in mobile mode:
Note - As a better option, Set the user agent for all subsequent requests
As an option, to set the user agent for all the subsequent requests you can use the following code:
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer,
int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;
string additionalHeaders = "User-Agent:Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; " +
"Microsoft; Lumia 950 XL Dual SIM) AppleWebKit/537.36 (KHTML, like Gecko) " +
"Chrome/52.0.2743.116 Mobile Safari/537.36 Edge/15.15063
";
private void Form1_Load(object sender, EventArgs e)
{
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT,
additionalHeaders, additionalHeaders.Length, 0);
webBrowser1.Navigate("http://google.com");
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…