Over a million developers have joined DZone.

How to Get The Windows Phone User Agent String

DZone's Guide to

How to Get The Windows Phone User Agent String

· Mobile Zone
Free Resource

Launching an app doesn’t need to be daunting. Whether you’re just getting started or need a refresher on mobile app testing best practices, this guide is your resource! Brought to you in partnership with Perfecto

On a recent project I needed to extract the windows phone user-agent string for our usage analytics, and it had to be the same user-agent as the IE requests. While this didn’t end up being as straight forward and I had hoped, the code below involves a few simple steps. First we have to insert a collapsed browser onto the page, then we can navigate it to specifically crafted HTML/JavaScript, which will in-turn notify the WebBrowser control of it’s user-agent. All you need to do is store it somewhere; in my case, I put it into a custom ApplicationSettings class, but you can store it anywhere you want.


Since this code requires adding a WebBrowser control to a page, it’s probably easier to do in code-behind as opposed to a view model.

public partial class HomeView : PhoneApplicationPage
    public HomeView()
        Loaded += HomeView_Loaded;

    private void HomeView_Loaded(object sender, RoutedEventArgs e)
            userAgent =>
                    // TODO: Store this wherever you want
                    ApplicationSettings.Current.UserAgent = userAgent;

The Helper

public static class UserAgentHelper
    private const string Html =
        @"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">

        <script language=""javascript"" type=""text/javascript"">
            function notifyUA() {
        <body onload=""notifyUA();""></body>

    public static void GetUserAgent(Panel rootElement, Action<string> callback)
        var browser = new Microsoft.Phone.Controls.WebBrowser();
        browser.IsScriptEnabled = true;
        browser.Visibility = Visibility.Collapsed;
        browser.Loaded += (sender, args) => browser.NavigateToString(Html);
        browser.ScriptNotify += (sender, args) =>
                                        string userAgent = args.Value;

Keep up with the latest DevTest Jargon with the latest Mobile DevTest Dictionary. Brought to you in partnership with Perfecto.


Published at DZone with permission of Matt Hidinger, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}