C# 在WP8.1 WebView中更改用户代理

C# 在WP8.1 WebView中更改用户代理,c#,webview,windows-phone-8.1,C#,Webview,Windows Phone 8.1,这是针对Windows Phone的。我正在使用windowsphone8.1更新1。您知道,web界面的工作原理与android和iOS类似。如何在我的wp8.1 web应用程序中获得相同的界面?我下载并安装了WP8.1更新1 SDK。当我打开一个新项目时,我没有看到要选择的Wp8.1更新1版本。我可以在WP8.1或青色更新用户中获得更新的web界面吗?Windows Phone 8.1更新1没有为开发人员引入任何新的公共API 如果您正在Windows Phone 8.1 XAML项目中使用

这是针对Windows Phone的。我正在使用windowsphone8.1更新1。您知道,web界面的工作原理与android和iOS类似。如何在我的wp8.1 web应用程序中获得相同的界面?我下载并安装了WP8.1更新1 SDK。当我打开一个新项目时,我没有看到要选择的Wp8.1更新1版本。我可以在WP8.1或青色更新用户中获得更新的web界面吗?

Windows Phone 8.1更新1没有为开发人员引入任何新的公共API

如果您正在Windows Phone 8.1 XAML项目中使用(又名
WebBrowser
)控件,并且希望为整个会话指定不同的用户代理,请使用

[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;

public void ChangeUserAgent(string Agent)
{
    UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0);
}

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    ChangeUserAgent("My Custom User-Agent");
    wb.Navigate(new Uri("http://basquang.wordpress.com/2014/04/26/wp8-1-changing-windows-phone-8-1-webview-default-user-agent-in-all-outbound-http-requests/", UriKind.Absolute));
}

资料来源:

这篇文章中的另一个选项由\u Pete回答

HttpRequestMessage httpRequestMessage = 
new HttpRequestMessage(HttpMethod.Post, new Uri("website"));
httpRequestMessage.Headers.Append("User-Agent", 
                "Custom User-Agent"); 

webView.NavigateWithHttpRequestMessage(
httpRequestMessage);

显然,它适用于一个Uri

此方法将导致认证失败:“此应用程序类型不支持此API-API=UrlMkSetSessionOption.Module=urlmon.dll”此方法将在调试版本中工作,但将完全按照@craigomatic提到的方式获得认证失败,因此,该应用程序将无法在商店中发布。有人可以展示其他更好的解决方案吗?这适用于单个导航,但不适用于在WebView中提出的任何请求或在WebView中导航到其他页面时。