2013-02-18 14 views
7

Ich weiß, dass diese Frage zu Tode geprügelt wurde, aber ich möchte hier nichts sehr kompliziert.Unterscheidung zwischen Telefon-und Tablet-Browser

Wir haben eine Companion-App mit unserer Website, die nur mit 7 und 10-Zoll-Tablets kompatibel ist. Wir müssen Nutzer auf diesen Geräten nur über unsere App informieren. Problem ist, ich kann nicht durch Auflösung gehen. Mein Galaxy S3 hat einen 1280 x 720 Bildschirm, ist aber offensichtlich kein Tablet. Ich kann auch nicht für das Leben von mir einen Weg finden, um die physikalische Größe des Bildschirms zu bekommen. Die einzige Lösung, die ich gefunden habe, ist festzustellen, ob das Gerät mit MobileCapabilities.CanInitiateVoiceCall Anrufe tätigen kann. Leider ist der Chef mit dieser Lösung nicht zufrieden.

So ... Wie kann ich in meiner Web-App (Server- oder Client-Seite) zwischen einem Telefon und einem Tablet unterscheiden?

UPDATE: Bisher scheint es, dass der beste Ansatz für Android etwas von einer Blog-Post von dem Android-Team ist: Alle Android-Handys "Mobile" in dem Useragent-String, so Überprüfung für "Mobile" verwenden * und "Android" wird Ihnen sagen, wenn es ein Telefon ist, während nur "Android" sollte ein Tablet sein. iOS-Geräte sollten genauso einfach sein - die Suche nach "iPhone" vs "iPad" scheint bisher funktioniert zu haben.

+1

* "Wir müssen Benutzer auf diesen Geräten nur über unsere App benachrichtigen" * - Warum? Wenn ein Gerät über eine geeignete Auflösung verfügt, um Ihren Inhalt anzuzeigen, lassen Sie sie nicht aus. Machen Sie Ihr Design ansprechend und unterstützen Sie * jedes * Gerät. – poke

+2

Wenn Sie wirklich zwischen einem Telefon und einem Tablet unterscheiden möchten, denke ich definitionsgemäß, was ein Telefon ein Telefon ist, ob es Telefonanrufe tätigen kann. Ich bin mir nicht sicher, was Ihr ultimatives Ziel ist, aber die Grenze zwischen Tablet/Computer/Telefon wird immer unschärfer und die Möglichkeit, Anrufe zu tätigen, ist das Einzige, was ein Telefon noch zu einem Telefon macht. – AaronLS

+1

Wenn ein Android-Telefon und ein Tablet beide eine gute Auflösung haben, die groß genug für Ihre App ist, was unterscheidet die beiden Geräte, die Sie unterscheiden müssen? Die Antwort darauf sollte sein, was Sie verwenden, um zu bestimmen, worauf Sie Ihre Entscheidung ausrichten sollten. – AaronLS

Antwort

0

Sie können versuchen, eine Benutzeragentenermittlung durchzuführen und nach den Schlüsselwörtern zu suchen, z. B. haben alle Nicht-Tablet-Geräte die Schlüsselwörter "Mobile Safari" auf ihrem Benutzeragenten.

+0

Nur "Mobile Safari" funktioniert nicht, weil sowohl Telefone und Tablets (zumindest für iOS-Geräte haben das in ihrem UserAgent. –

1

Ich weiß, das ist ein bisschen spät, aber ich war auf der Suche nach dem gleichen Ding.

Wurfl hat was du willst. Sie können es leicht implementieren und haben sogar eine API, die Sie abfragen können.

Für ASP.NET-Anwendung müssen Sie zuerst die einmalige Initialisierung platzieren.

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; 
    } 
} 

Und dann verwenden Sie es so.

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

Für weitere Informationen überprüfen ASP.NET implementation

hoffe, das hilft jemand anderes für diese suchen.

Verwandte Themen