Ich fand this trick by Matt Dot. Dadurch wird die User-Agent-Zeichenfolge dauerhaft geändert. Jede WebView
Anfrage, ob manuell oder durch einen Link-Klick innerhalb des HTML, wird als User-Agent Header gesendet.
Hier ist die Quelle für den Fall, dass der Link stirbt.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace UA
{
public static class UserAgent
{
const int URLMON_OPTION_USERAGENT = 0x10000001;
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkGetSessionOption(int dwOption, StringBuilder pBuffer, int dwBufferLength, ref int pdwBufferLength, int dwReserved);
public static string GetUserAgent()
{
int capacity = 255;
var buf = new StringBuilder(capacity);
int length = 0;
UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, buf, capacity, ref length, 0);
return buf.ToString();
}
public static void SetUserAgent(string agent)
{
var hr = UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, agent, agent.Length, 0);
var ex = Marshal.GetExceptionForHR(hr);
if(null != ex)
{
throw ex;
}
}
public static void AppendUserAgent(string suffix)
{
SetUserAgent(GetUserAgent() + suffix);
}
}
}
Sie können diesen Wert überall in Ihrer Anwendung ändern, aber wenn Sie es dauerhaft einstellen wollen, verwenden Sie den App.xaml.cs
Konstruktor:
public App()
{
UA.UserAgent.SetUserAgent("Firefox ;)");
// ...
}
[Ich glaube nicht, können Sie] (https: // social.msdn.microsoft.com/Forums/en-US/ea00647f-ba00-45a0-8df0-fa267f073ab9/set-webview-user-agent-string?forum=winappswithcsharp). – DavidG
@DavidG Vielen Dank für Ihren Kommentar, aber dies ist für Windows 8. Ich kann den User-Agent auf erste Anfrage als MAYBreath auf MSDN erwähnt ändern, aber es ändert sich standardmäßig, wenn ich auf eine andere Seite navigiere. – GeorgeChond
Ja, ich weiß, dass Windows 8 noch gültig ist. – DavidG