IsMobileDevice如何运作?

Bry*_*yan 40 asp.net mobile

MSDN让检测移动浏览器变得非常容易:

if (Request.Browser["IsMobileDevice"] == "true" ) 
{
    Response.Redirect("MobileDefault.aspx");
}
Run Code Online (Sandbox Code Playgroud)

实际上,看起来你也可以只检查Request.Browser.IsMobileDevice.但这实际上是如何运作的呢?我甚至没有.browser文件......幕后发生了什么?ASP.NET 2.0是否有一些内置的默认值?

Ric*_*kNZ 57

.NET附带了许多*.browser文件:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers
Run Code Online (Sandbox Code Playgroud)

运行时使用*.browser文件中的正则表达式来匹配传入的User-Agent字符串,然后根据它找到的每个匹配设置一组属性(层次结构中可以有多个).

如果您需要深入的移动设备支持,请考虑安装MDBF,它增加了对大约400个设备的支持:

http://mdbf.codeplex.com/

  • 所以你投了2年多的答案因为我参考的图书馆现在已经老了?在SO上你会得到满满的其他旧答案!如果你要去那里,你可以继续前进:服务器端浏览器ID现在已经过时了.现在有非常好的客户端支持(例如Modernizr),随着对CSS3的支持的改善,它将变得更好. (46认同)
  • 我认为James Rosewell正在推广一款产品. (16认同)

Vla*_*adL 16

现在,经过4年,它变得更加简单

Request.Browser.IsMobileDevice
Run Code Online (Sandbox Code Playgroud)

  • 当然,他们把它带走了.Net Core. (4认同)
  • 知道这个属性是如何工作的吗?关于它的 MSDN 文章只是说它知道(基本上)。 (2认同)