我知道有很多主题包含与此主题相同的主题,但不是那些主题可以帮助我解决我的问题。
我正在用C#制作一个简单的iPhone Web浏览器。它唯一应该做的就是像iPhone一样。更改用户代理字符串时可以这样做。
我在WebBrowser.Navigate事件中尝试过,在第4个参数中,您可以放置包含用户代理字符串的标头。但它只运行一次,在您单击WebBrowser中的某些内容后,它会将用户字符串更改为默认值。所以这对我来说不是一个有用的方法。
然后我尝试了在互联网上找到的ExtendedWebBrowser控件。当您使用该控件时,您可以在属性窗口中设置用户代理,但这对我来说根本不起作用。
所以最后我尝试使用urlmon.dll来设置用户代理,但是每当他们谈论它时,他们都会谈论重启过程。我找不到任何使用该DLL的进程,所以我无法获得是工作。如果它可以工作,那么每次我想使用该应用程序时都不可能重新启动它。
有人可以帮助我回答我的问题,我现在正在努力争取一天吗?
提前感谢大家!
答案 0 :(得分:0)
以下是更改UserAgent
的方法[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 ua = "YourUserAgentString";
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, ua, ua.Length, 0);
答案 1 :(得分:-1)
我没有为此特定问题添加任何内容,但应该提到IE不会在任何接近iPhone的方式上呈现任何内容,特别是对于包含iPhone特定标记,脚本和样式表。
Google Chrome是基于WebKit的(与iPhone浏览器相同),开发者工具中有一个选项可以覆盖用户代理。它可能比尝试在C#下托管IE更好。 Chrome的调试工具在DOM中也很好用。