en / de
AI
Expertisen
Methoden
Dienstleistungen
Referenzen
Jobs & Karriere
Firma
Technologie-Trends TechCast WebCast TechBlog News Events Academy

User Agent in einer WebView manipulieren

In einem Windows Phone 8.1 App soll eine Website angezeigt werden. Gelöst wird dies mit Hilfe einer WebView. Für das Projekt besteht kein Zugriff auf den Source Code der Website, es wird einzig der URL an die WebView übergeben, diese zeigt dann die Website an. Damit der richtige Content geliefert werden kann, muss der UserAgent geändert werden. Allerdings soll nicht der komplette UserAgent ersetzt werden, sondern nur ein neuer Teil angehängt werden, zum Beispiel der Hersteller und die Software Version des Smartphones. Daher muss der UserAgent erweitert werden. Also zuerst ausgelesen, angepasst und danach wieder gesetzt werden.

Die dll urlmod.dll liefert hier die gewünschten Methoden:

const int UrlmonOptionUseragent = 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, out int pdwBufferLength, int dwReserved);

Der Code um den UserAgent anzupassen muss vor dem Aufruf der WebView hinzugefügt werden. Der Aufruf sieht folgendermassen aus:

public static void ManipulateUserAgent()
{
   var orgUserAgent = new StringBuilder();
   int length;

   UrlMkGetSessionOption(UrlmonOptionUseragent, orgUserAgent, orgUserAgent.Capacity - 1, out length, 0);

   //Hier kann der bestehende UserAgent angepasst werden
   var userAgent = orgUserAgent + AddSomethingToUserAgent();

   UrlMkSetSessionOption(UrlmonOptionUseragent, userAgent, userAgent.Length, 0);
}

Der User Agent ist dadurch nicht nur für den ersten Aufruf geändert, sondern für die ganze Session.

Kommentare

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Newsletter - aktuelle Angebote, exklusive Tipps und spannende Neuigkeiten

 Jetzt anmelden

Copyright © 2025 Noser Engineering AG – Alle Rechte vorbehalten.

NACH OBEN
Privacy Policy Cookie Policy
Zur Webcast Übersicht