My Space

导航

< 2025年7月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

统计

判断客户端设备

复制代码
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;
}

来源:http://www.codeproject.com/KB/aspnet/mobiledetect.aspx 

复制代码

posted on 2011-11-22 11:02  alronzhang  阅读(481)  评论(0)    收藏  举报

编辑推荐:
· 别做抢活的导演:代码中的抽象层次原则
· 从 Redis 客户端超时到 .NET 线程池挑战
· C23和C++26的#embed嵌入资源指南
· 「EF Core」框架是如何识别实体类的属性和主键的
· 独立开发,这条路可行吗?
阅读排行:
· 他没买 iPad,而是花了半年时间,为所有“穷学生”写了个笔记神器
· Visual Studio 现已支持新的、更简洁的解决方案文件(slnx)格式
· 从 Redis 客户端超时到 .NET 线程池挑战:饥饿、窃取与阻塞的全景解析
· 2025年中总结:我想我克服公众演讲的恐惧了,一个社恐分子突破自我的故事
· 3.1k star!推荐一款开源基于AI实现的浏览器自动化插件工具 !
历史上的今天:
2010-11-22 解决windows 7锁定任务栏菜单消失问题
点击右上角即可分享
微信分享提示