2012-07-05 58 views
7

我想檢測一個移動設備是否是一個平板電腦(iPad)或不在ASP.net 我曾看過51degrees項目,但檢測平板電腦的功能不可用免費版本 - 而且,由於我們將ASP.net解決方案分發給100多位客戶,我們無法爲其全部購買51度的許可證。用ASP.net檢測iPad

51degrees是否有免費或開放源代碼可供選擇?或者更新版本的MVC(4?)會提供比普通IsMobileDevice()更詳細的信息嗎?

感謝, 康拉德

+0

新版本將包括Modernizr。 – IrishChieftain 2012-07-05 14:16:28

+4

你永遠不會贏得設備檢測。新設備的引入方式太頻繁。改用功能檢測和媒體查詢。 – jrummell 2012-07-05 14:38:46

回答

4

你並不需要 「檢測的iPad」。只需使用媒體查詢,給你的iPad支持作爲附帶iPad上的Safari瀏覽器已經理解CSS3:

CSS3 Media Queries

/* iPads (landscape) */ 
@media screen and (min-device-width : 768px) 
    and (max-device-width : 1024px) and (orientation : landscape) { 
    ... 
} 
/* iPads (portrait) */ 
@media screen and (min-device-width : 768px) and (max-device-width : 1024px) 
    and (orientation : portrait) { 
    ... 
} 

最好的辦法是用HTML5Boilerplate因爲它修復了一些其他的事情爲iPad也。使用Modernizr進行特徵檢測;它帶有HTML5Boilerplate。

HTML5 Boilerplate

20 Snippets You should be using from Html5 Boilerplate

+12

我們需要移動設備的服務器端檢測,因爲我們根據智能手機,平板電腦,桌面路由到完全不同的頁面。因此,媒體查詢很適合以其他格式顯示相同的內容,但不適合提供完成不同的內容。 – Konrad 2012-07-06 05:55:32

+0

你可以很容易地用CSS顯示不同的內容,這是更可靠的方式。使用顯示切換div可見性:塊和顯示:無。當你最需要代理時,代理嗅探往往會讓你失望。 – IrishChieftain 2012-07-06 11:55:13

+0

我知道 - 但我們爲手機和臺式機提供了完全不同的導航結構。在桌面上顯示許多內容會導致手機的許多不同連接頁面...媒體查詢很不錯,但它們不是瑞士軍刀;-) – Konrad 2012-07-06 14:24:16

10

您可以要求用戶代理和檢查,看它是否含有 'iPad的' 像這樣

bool isIpad = Request.UserAgent.ToLower().Contains("ipad");