我有samsung galaxy s2,在C#代碼中顯示Request.Browser.IsMobileDevice = false,但我想爲我的應用程序使用移動版本。如何有能力顯示我的網站的移動版本,Android設備?Android的Request.Browser.IsMobileDevice = false,爲什麼?
非常感謝。
謝爾蓋。
我有samsung galaxy s2,在C#代碼中顯示Request.Browser.IsMobileDevice = false,但我想爲我的應用程序使用移動版本。如何有能力顯示我的網站的移動版本,Android設備?Android的Request.Browser.IsMobileDevice = false,爲什麼?
非常感謝。
謝爾蓋。
您可以檢查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/
非常感謝!你救了我的一天:) – Sergey
很高興能有所幫助。你還應該對dknaack的鏈接有一個很好的閱讀,他發佈了這個鏈接,作爲對你的問題的評論。 – Polynomial
看起來很有趣...非常感謝你,再次 – Sergey
檢查設備是否是Android設備很有用。
有一個與代碼後: http://dbarrowstechblog.blogspot.hk/2011/02/requestbrowserismobiledevice.html
這並不理想,因爲它會將Android平板電腦檢測爲移動設備(並且您通常不希望平板電腦能夠看到移動版)。當用戶代理字符串是平板電腦時,它們似乎經常包含「平板電腦」,因此檢查這些字符串也會對它們進行補救。 –
您可以創建在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>
請仔細閱讀http://stackoverflow.com/questions/1829089/how-does-ismobiledevice-work。 – dknaack
只需使用Nuget添加51degrees – Shahdat