Loading...

Detecting a mobile browser in ASP.NET

View: 1098    Dowload: 0   Comment: 0   Post by: naruto   Category: Wap mobile   Fields: Computers - Technology

A simple function to detect if a user vesting your site is on a mobile device or not.

Background

This is my first CodeProject article. The articles on this site have helped me out so much in learning .NET. I just hope this can help someone out as well.

I needed the ability to detect if a user was browsing from a mobile device or a normal web browser and redirect to the appropriate version of my site. I found very little ASP.NET tutorials that worked. So I decided to take a few different methods and language options I found on the net and put them into one simple ASP.NET method.

Using the Code

It is just a static boolean method that gets called, isMobileBrowser():

public static bool isMobileBrowser()
{
    //GETS THE CURRENT USER CONTEXT
    HttpContext context = HttpContext.Current;

    //FIRST TRY BUILT IN ASP.NT CHECK
    if (context.Request.Browser.IsMobileDevice)
    {
        return true;
    }
    //THEN TRY CHECKING FOR THE HTTP_X_WAP_PROFILE HEADER
    if (context.Request.ServerVariables["HTTP_X_WAP_PROFILE"] != null)
    {
        return true;
    }
    //THEN TRY CHECKING THAT HTTP_ACCEPT EXISTS AND CONTAINS WAP
    if (context.Request.ServerVariables["HTTP_ACCEPT"] != null && 
        context.Request.ServerVariables["HTTP_ACCEPT"].ToLower().Contains("wap"))
    {
        return true;
    }
    //AND FINALLY CHECK THE HTTP_USER_AGENT 
    //HEADER VARIABLE FOR ANY ONE OF THE FOLLOWING
    if (context.Request.ServerVariables["HTTP_USER_AGENT"] != null)
    {
        //Create a list of all mobile types
        string[] mobiles =
            new[]
                {
                    "midp", "j2me", "avant", "docomo", 
                    "novarra", "palmos", "palmsource", 
                    "240x320", "opwv", "chtml",
                    "pda", "windows ce", "mmp/", 
                    "blackberry", "mib/", "symbian", 
                    "wireless", "nokia", "hand", "mobi",
                    "phone", "cdm", "up.b", "audio", 
                    "SIE-", "SEC-", "samsung", "HTC", 
                    "mot-", "mitsu", "sagem", "sony"
                    , "alcatel", "lg", "eric", "vx", 
                    "NEC", "philips", "mmm", "xx", 
                    "panasonic", "sharp", "wap", "sch",
                    "rover", "pocket", "benq", "java", 
                    "pt", "pg", "vox", "amoi", 
                    "bird", "compal", "kg", "voda",
                    "sany", "kdd", "dbt", "sendo", 
                    "sgh", "gradi", "jb", "dddi", 
                    "moto", "iphone"
                };

        //Loop through each item in the list created above 
        //and check if the header contains that text
        foreach (string s in mobiles)
        {
            if (context.Request.ServerVariables["HTTP_USER_AGENT"].
                                                ToLower().Contains(s.ToLower()))
            {
                return true;
            }
        }
    }

    return false;
}

Points of Interest

As you can see, the above code is written in new syntax. But, it can easily be changed to work on any version of .NET. Instead of using the short hand array initializer, use new string[] {} (instead of new[] {}).

Detecting a mobile browser in ASP.NET

A simple function to detect if a user vesting your site is on a mobile device or not.

Posted on 21-03-2014 

Comment:

To comment you must be logged in members.

Files with category

 
File suggestion for you
Loading...
File top downloads
Loading...
Loading...
Codetitle - library source code to share, download the file to the community
Copyright © 2018. All rights reserved. codetitle Develope by Vinagon .Ltd