2011-12-01 86 views
16

我有samsung galaxy s2,在C#代码中显示Request.Browser.IsMobileDevice = false,但我想为我的应用程序使用移动版本。如何有能力显示我的网站的移动版本,Android设备?Android的Request.Browser.IsMobileDevice = false,为什么?

非常感谢。

谢尔盖。

+4

请仔细阅读http://stackoverflow.com/questions/1829089/how-does-ismobiledevice-work。 – dknaack

+0

只需使用Nuget添加51degrees – Shahdat

回答

3

您可以检查User-Agent HTTP标头。

user-agent是一个标识符(通常)包含浏览器名称和版本,以及运行浏览器的平台或操作系统的名称和版本。目前的标准是将这个分割成空间分隔的元素,但实际上User-Agent字段可以设置为任何东西。

例子:

Mozilla/5.0 Windows NT 6.1 WOW64 rv 8.0 Gecko/20100101 Firefox/8.0 

这表明,我运行Firefox 8.0的Windows NT的64位版本(使用Mozilla的渲染器V5.0和Gecko排版引擎发布2010/01/01) 6.1版(这是Windows 7)。

你可以从这里获取有关用户代理字符串的详细信息:http://www.useragentstring.com/

+0

非常感谢!你救了我的一天:) – Sergey

+0

很高兴能有所帮助。你还应该对dknaack的链接有一个很好的阅读,他发布了这个链接,作为对你的问题的评论。 – Polynomial

+0

看起来很有趣...非常感谢你,再次 – Sergey

2

使用来自NuGet 51Degrees.mobi的点击与零配置,这将解决此问题的安装。

+8

不再是一个选项。好吧,这是一个选项,但是如果没有高级数据订阅,你无法获得更新。众包是最好的! –

0

检查设备是否是Android设备很有用。

有一个与代码后: http://dbarrowstechblog.blogspot.hk/2011/02/requestbrowserismobiledevice.html

+1

这并不理想,因为它会将Android平板电脑检测为移动设备(并且您通常不希望平板电脑能够看到移动版)。当用户代理字符串是平板电脑时,它们似乎经常包含“平板电脑”,因此检查这些字符串也会对它们进行补救。 –

1

您可以创建在App_Browsers文件一个文件,一个正则表达式来识别浏览器,下面一个为Firefox Android中:

<browsers> 
    <!--Mozilla/5.0 (Android 5.0; Mobile; rv:44.0) Gecko/44.0 Firefox/44.0--> 
    <browser id="FirefoxMobile" parentID="firefox3plus"> 
     <identification> 
      <userAgent match="Mozilla.+\(Android.+Mobile.*\)" /> 
     </identification> 
     <capabilities> 
      <capability name="isMobileDevice" value="true" /> 
     </capabilities> 
    </browser> 
</browsers>