如何在Web应用程序中检测手机

时间:2010-01-07 19:07:22

标签: asp.net mobile

如果是网络应用程序,您如何判断访问者是否正在通过手机查看?

是否有可能找出像黑莓与iphone一样的品牌/型号?

8 个答案:

答案 0 :(得分:4)

您可以查看他们的User-Agent字符串。

答案 1 :(得分:4)

Scott Hanselman did a podcast关于Microsoft made available on Codeplex的模块设备数据库。它是一个.browser文件,放在ASP.NET(版本2.0+)网站中,然后帮助框架更紧密地定义Request.Browser属性。您应该能够从那里获得所需的大量信息。

但是,该项目不再受支持,当您处理用户代理检测时,拥有最新资源非常重要。您应该使用类似的项目,例如51degrees.mobiWURFL

即使没有,至少你可以检查Request.Browser.IsMobileDevice

答案 2 :(得分:1)

您可以检查User-Agent字符串。在JavaScript中,这非常简单,它只是导航器对象的一个​​属性。

var useragent = navigator.userAgent;

您可以使用类似

的内容检查设备中的iPhone或Blackberry
var isIphone = !!agent.match(/iPhone/i),
    isBlackberry = !!agent.match(/blackberry/i);

如果isIphone是真的你是从Iphone访问该网站,如果isBlackBerry你是从黑莓访问该网站。

您可以使用“UserAgent Switcher”插件进行firefox测试。

答案 3 :(得分:1)

httpRequest.Browser.IsMobileDevice

中使用Session_Start
void Session_Start(object sender, EventArgs e)
{
    // Redirect mobile users to the mobile home page
    HttpRequest httpRequest = HttpContext.Current.Request;
    if (httpRequest.Browser.IsMobileDevice)
    {
        string path = httpRequest.Url.PathAndQuery;
        bool isOnMobilePage = path.StartsWith("/Mobile/", 
                               StringComparison.OrdinalIgnoreCase);
        if (!isOnMobilePage)
        {
            string redirectTo = "~/Mobile/";

            HttpContext.Current.Response.Redirect(redirectTo);
        }
    }
}

答案 4 :(得分:0)

答案 5 :(得分:0)

以下是类似问题的一些信息:

Auto detect mobile browser (via user-agent?)

它涉及读取用户代理标头。其他问题的答案包括脚本链接。

这是另一个有用的讨论:

Standard way to detect mobile browsers in a web application based on the http request

答案 6 :(得分:0)

如上所述 - 用户代理

但是,你真的想问“它是手机吗?”或者你真的是指其他什么?

这些天线条变得模糊。我花了99美元从eBay购买了一个带有7英寸屏幕的漂亮小安卓平板电脑。这是一部手机吗?是一款带6英寸屏幕的迷你上网本吗?是一个像Kidnle一样的设备吗?

我只是想知道为什么你想知道它是否是一部手机......屏幕尺寸?处理能力?别的什么?

你可能确实意味着移动'电话但是,如果没有,请改写,我们可以进一步帮助。

答案 7 :(得分:0)

请检查一下。为我工作得很好!

http://detectmobilebrowsers.com/