2011-12-01 87 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>