在ASP.NET中检测来自移动浏览器的请求

在ASP.NET中检测来自移动浏览器的请求,asp.net,redirect,mobile,mobile-website,Asp.net,Redirect,Mobile,Mobile Website,我有一个现有的网站,我想创建一个更合适的移动版本。例如,主站点使用下拉菜单,我们都知道这些是移动设备上最常见的故障 如果我检测到来自移动浏览器的请求,我想重定向到我的移动版本(它将是当前站点的子域)。因此,当他们用谷歌搜索某个东西并访问我的网站时,他们会自动看到移动版本(就像维基百科一样) ASP.NET是否提供了一种简单的方法?如果没有,我怎么做?有一个提供这种功能的项目。codeplex上有一个项目,您可以使用: 项目说明 移动浏览器定义文件 包含对单个项目的定义 移动设备和浏览器。在逃 同

我有一个现有的网站,我想创建一个更合适的移动版本。例如,主站点使用下拉菜单,我们都知道这些是移动设备上最常见的故障

如果我检测到来自移动浏览器的请求,我想重定向到我的移动版本(它将是当前站点的子域)。因此,当他们用谷歌搜索某个东西并访问我的网站时,他们会自动看到移动版本(就像维基百科一样)


ASP.NET是否提供了一种简单的方法?如果没有,我怎么做?

有一个提供这种功能的项目。

codeplex上有一个项目,您可以使用:

项目说明

移动浏览器定义文件 包含对单个项目的定义 移动设备和浏览器。在逃 同时,ASP.NET使用中的信息 请求标头,以确定 设备/浏览器的类型已使 请求

此项目提供了一个数据文件 与ASP.NET一起使用时,将检测 传入的移动设备并向您演示 作为一名拥有67名员工的web开发人员 描述能力或属性 请求设备。这些 功能范围从屏幕大小到大小不等 cookie支持并提供所有 您需要自适应更新的信息 为移动电话和网络渲染内容 设备

什么是移动设备浏览器定义文件?

移动设备浏览器定义 文件包含功能定义 针对单个移动设备和 浏览器。在运行时,ASP.NET使用 此.browser文件,以及 HTTP请求中的信息 页眉,以确定哪种类型的 设备/浏览器已发出请求 它的功能是什么 设备是。这个信息是 通过 请求.Browser属性并允许 让他们定制 他们的网页适合 目标设备的功能


您可以在Request.Browser中的某个位置使用IsMobileDevice属性。不过,您需要一些像样的浏览器定义。我使用这些优秀的浏览器定义集:


它们真的很深入,是我见过的最好的。我认为他目前也在开发.NET4。我认为最好的解决方案是。这是一个更为更新的设备描述存储库,而且是免费的。唯一的不便是.net api是GPL。

保持简单

这里是相同的JS

希望它能帮助别人

var useragent = navigator.userAgent;

var isMobile = !!useragent.match(/iPhone|Android|Blackberry|Sony|Nokia|Motorola|Samsung/i),
    isWebBrowser = !!useragent.match(/Mozilla/i);

// Redirect the call accordingly.

  if(isWebBrowser && !isMobile)
            //call to web portal
            alert(" You seem to me... calling from Web Browser")
    else if(isMobile)
        //call to mobile apps
            alert(" Call seems to be from Mobile device...")
    else
    {
        // jus kiddin...
        alert(" Unable to detect the device..... Please report to admin...")
    }

嗯,这并不是我所希望的答案。对我来说,用户代理字符串解析是一个悲哀的最后手段。这是唯一能够区分移动浏览器请求和普通浏览器的东西。好吧,我有一个梦想!总有一天,我的四个孩子将能够根据请求编写
。IsMobile
你可以。。。Request.Browser.IsMobileDevice!但您需要良好的浏览器定义。看我的答案(上图;)@fravelgue如果你要来这里为它是一个复制品而哭泣,那么请站起来投票关闭它,并向我指出复制品。我什么也没找到。你的噪音一点用都没有!我的朋友。我想WURFL对你来说可能很有趣。所以mdbf有一些问题:这个解决方案的问题,我至少在Chrome中遇到过,就是在检测到移动浏览器并将location.href设置到移动部分后,页面仍在加载。页面加载一半看起来很奇怪,用户在中间被转发。如果用户在进入网页之前被重定向,会更加流畅。