2

如何强制windows phone在移动浏览器中使用桌面视图模式?

在设置中,可以将浏览器设置为使用桌面视图,因为移动视图中似乎缺少一些功能,导致我的网站无法正确显示。

4

1 回答 1

1

如果要使网站在WebBrowser控件中以桌面模式显示,则必须更改其用户代理。你可以这样做:

webBrowser.Navigate(new Uri("http://www.google.com", null, "User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)");

该代码将 WebBrowser 的用户代理更改为桌面 Internet Explorer 10 的用户代理。

但是,它只会更改导航到的页面的用户代理。当用户单击链接时,用户代理将变回。要解决此问题,请将 WebBrowser 的 Navigating 事件设置为:

private void webBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
        string url = e.Uri.ToString();
        if (!url.Contains("#changedua"))
        {
            e.Cancel = true;
            url = url + "#changedua";
            webBrowser.Navigate(new Uri(url), null, "User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)");
        }
}

在此代码中,我们检查 url 是否包含标志“#changedua”。如果是,我们允许导航。如果没有,我们取消导航。然后,我们使用自定义用户代理再次导航,并添加标志以表明它是有效的。

于 2013-12-07T19:57:57.470 回答