2013-02-18 134 views
7

我知道這個問題是被毆打致死,但我不希望任何超複雜在這裏。手機和平板電腦的瀏覽器之間的區別

我們有我們的網站,僅與7和10英寸平板電腦兼容的配套應用。我們只需提醒那些設備上的用戶關於我們的應用。問題是,我不能通過解決。我的Galaxy S3擁有1280 x 720的屏幕,但顯然不是平板電腦。我也不能爲我的生活找到一個辦法讓物理尺寸的畫面。我提出的唯一解決方案是檢測設備是否可以使用MobileCapabilities.CanInitiateVoiceCall撥打電話。不幸的是,老闆對這個解決方案並不滿意。

所以...我怎麼能在我的web應用程序(服務器或客戶端),手機和平板電腦之間的區別?

UPDATE:到目前爲止,這似乎爲Android最好的辦法是從博客文章的東西由Android團隊:所有 Android手機使用的用戶代理字符串「移動」,因此檢查「移動」 * 「機器人」會告訴你,如果它是一個電話,而僅僅是「Android」的應該是平板電腦。 iOS設備應該是一樣簡單 - 檢查「iPhone」與「iPad」似乎迄今已經奏效。

+1

*「我們只需要對我們的應用程序在這些設備上提醒用戶」 * - 爲什麼?如果設備具有適當的分辨率來顯示您的內容,請不要將它們排除在外。讓您的設計更具響應性,並支持*任何*設備。 – poke 2013-02-18 21:02:33

+2

如果您真正想要區分手機和平板電腦,我想定義是什麼讓手機成爲手機是否可以撥打電話。我不確定你的最終目標是什麼,但是平板電腦/電腦/手機之間的界限變得相當模糊,而且能夠撥打電話是唯一仍然可以讓手機成爲手機的東西。 – AaronLS 2013-02-18 21:03:32

+1

如果Android手機和平板電腦都具有良好的分辨率足夠大,你的應用程序,什麼是你需要做的區分在兩個設備之間有什麼不同?答案應該是你用什麼來確定你應該決定什麼。 – AaronLS 2013-02-18 21:06:24

回答

0

你可以嘗試做一個用戶代理檢測和搜索keywrords,例如,所有的非平板設備有一個「移動版Safari」在他們的用戶代理的關鍵詞。

+0

只是「移動Safari瀏覽器」不起作用,因爲手機和平板電腦(至少在iOS設備有在他們的UserAgent中。 – 2013-03-20 12:18:12

1

我知道這是一個有點晚了,但我一直在尋找同樣的事情。

Wurfl有你想要笏。您可以輕鬆實現它,甚至可以查詢一個API。

對於ASP.NET應用程序首先你必須將一次性初始化。

public class Global : HttpApplication 
{ 
    public const String WurflDataFilePath = "~/App_Data/wurfl.zip"; 
    private void Application_Start(Object sender, EventArgs e) 
    { 
     var wurflDataFile = HttpContext.Current.Server.MapPath(WurflDataFilePath); 
     var configurer = new InMemoryConfigurer().MainFile(wurflDataFile); 
     var manager = WURFLManagerBuilder.Build(configurer); 
     HttpContext.Current.Cache[WurflManagerCacheKey] = manager; 
    } 
} 

,然後使用它是這樣的。

var device = WURFLManagerBuilder.Instance.GetDeviceForRequest(userAgent); 
var isTablet = device.GetCapability("is_tablet"); 
var isSmartphone = device.GetCapability("is_smartphone"); 

欲瞭解更多信息檢查ASP.NET implementation

希望這有助於其他人在找這個。

相關問題