我想檢測一個移動設備是否是一個平板電腦(iPad)或不在ASP.net 我曾看過51degrees項目,但檢測平板電腦的功能不可用免費版本 - 而且,由於我們將ASP.net解決方案分發給100多位客戶,我們無法爲其全部購買51度的許可證。用ASP.net檢測iPad
51degrees是否有免費或開放源代碼可供選擇?或者更新版本的MVC(4?)會提供比普通IsMobileDevice()更詳細的信息嗎?
感謝, 康拉德
我想檢測一個移動設備是否是一個平板電腦(iPad)或不在ASP.net 我曾看過51degrees項目,但檢測平板電腦的功能不可用免費版本 - 而且,由於我們將ASP.net解決方案分發給100多位客戶,我們無法爲其全部購買51度的許可證。用ASP.net檢測iPad
51degrees是否有免費或開放源代碼可供選擇?或者更新版本的MVC(4?)會提供比普通IsMobileDevice()更詳細的信息嗎?
感謝, 康拉德
我們現在用戶的舊移動設備瀏覽器文件: http://mdbf.codeplex.com/
而且因爲它是在這個解決方案中描述用我們自己的瀏覽器中的文件擴展它: http://www.hanselman.com/blog/MixMobileWebSitesWithASPNETMVCAndTheMobileBrowserDefinitionFile.aspx
現在我們可以甚至可以定義自己的參數來檢測Internet Explorer的兼容模式,或將iPad定義爲非移動設備。
你並不需要 「檢測的iPad」。只需使用媒體查詢,給你的iPad支持作爲附帶iPad上的Safari瀏覽器已經理解CSS3:
/* 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。
我們需要移動設備的服務器端檢測,因爲我們根據智能手機,平板電腦,桌面路由到完全不同的頁面。因此,媒體查詢很適合以其他格式顯示相同的內容,但不適合提供完成不同的內容。 – Konrad 2012-07-06 05:55:32
你可以很容易地用CSS顯示不同的內容,這是更可靠的方式。使用顯示切換div可見性:塊和顯示:無。當你最需要代理時,代理嗅探往往會讓你失望。 – IrishChieftain 2012-07-06 11:55:13
我知道 - 但我們爲手機和臺式機提供了完全不同的導航結構。在桌面上顯示許多內容會導致手機的許多不同連接頁面...媒體查詢很不錯,但它們不是瑞士軍刀;-) – Konrad 2012-07-06 14:24:16
您可以要求用戶代理和檢查,看它是否含有 'iPad的' 像這樣
bool isIpad = Request.UserAgent.ToLower().Contains("ipad");
這裏是你的整體解決方案。這是一個使用ASP.NET MVC展示響應式設計的網站;有一篇文章,教程和完整的項目下載與源代碼。
新版本將包括Modernizr。 – IrishChieftain 2012-07-05 14:16:28
你永遠不會贏得設備檢測。新設備的引入方式太頻繁。改用功能檢測和媒體查詢。 – jrummell 2012-07-05 14:38:46