it-swarm.com.de

Standardmethode zur Erkennung mobiler Browser in einer Webanwendung basierend auf der http-Anforderung

Wir beginnen den Weg der Unterstützung mobiler Browser für eine E-Commerce-Web-App für Unternehmen (Java/Servlet-basiert) zu beschreiten. Natürlich gibt es viele Entscheidungen, die getroffen werden müssen, aber es scheint mir der Grundstein zu sein, mobile Browser zuverlässig zu erkennen und Entscheidungen zu treffen, die entsprechend zurückgegeben werden sollen. Gibt es eine Standardmethode, um diese Bestimmung (schnell) basierend auf der http-Anfrage durchzuführen, und im Idealfall weitere Informationen über den jeweiligen Browser und das angefragte Gerät (Bildschirmgröße, HTML-Funktionen usw.) nachlesen.

Ich würde mich auch über zusätzliche Informationen freuen, die von jemandem genutzt werden könnten, der diesen Weg eingeschlagen hat, eine bestehende Enterprise-Webapp-App zu nutzen und die Unterstützung mobiler Browser von der Entwicklungsseite aus zu entwickeln.

[edit] Ich verstehe sicherlich den Anforderungsheader und die Informationen über eine Datenbank von Standardbenutzeragenten sind eine große Hilfe. Für diejenigen, die über "andere" Eigenschaften von Anforderungsheatern sprechen, wäre es eine große Hilfe, wenn Sie ähnliche standardisierte Namen/Ressourcen mit Werten verwenden könnten.

[edit] Mehrere Benutzer haben Lösungen vorgeschlagen, die einen Anruf über einen Draht zu einem Webdienst beinhalten, der die Erkennung durchführt. Ich bin mir sicher, dass dies funktioniert, es ist jedoch aus zwei Gründen keine gute Lösung für eine E-Commerce-Site für Unternehmen: 1) Geschwindigkeit. Ein drahtloser Anruf bei jeder Seitenanforderung an einen Dritten hätte enorme Auswirkungen auf die Leistung. 2) Abhängigkeit/rechtlich. Wir würden die Reaktionszeit unserer Website und die wichtigsten Funktionen an ihren Service binden, was aus rechtlichen Gründen und aus Gründen des Risikos fürchterlich ist.

56
Peter

Wäre es nicht üblich, den Benutzeragenten zu überprüfen? Hier ist eine Datenbank von Benutzeragenten , mit der Sie mobile Browser erkennen können.

42
David

@ Davids Antwort wurde mit WURFL erwähnt - was wahrscheinlich die beste Option ist. Seien Sie jedoch vorgewarnt, die Erfolgsquote liegt normalerweise bei 60% (aufgrund meiner und anderer Erfahrungen). Da die Netzbetreiber ständig die UAs ändern und die Anzahl der vorhandenen Geräteprofile (60.000 und mehr?), Gibt es keine kugelsichere Methode, um alle gewünschten Daten zu erhalten.

Nur eine kleine Warnung, bevor Sie sich stark auf einen Geräte-DB verlassen. Ich würde versuchen, die Optionen des Benutzers offen zu halten, indem ich ihnen erlaube, die Sitzungsoptionen zu ändern, falls ich falsch geraten habe.

20
jmccartie

Sie können Modernizer verwenden, um die Browserfähigkeiten zu erkennen

8
Adam

Während Sie einen mobilen Browser über seinen Benutzeragenten erkennen können, hat der Browser-Krieg auf der PC-Plattform gezeigt, dass das Erkennen von Benutzeragenten nicht wirklich gut ist.

Im Idealfall sollten bestimmte Stile basierend auf dem Medientyp angewendet werden oder eine andere Antwort basierend auf einem anderen Header als dem Benutzeragenten gesendet werden, z. B. der Accept-Header, der angibt, welche Art von Inhalt der Browser bevorzugt .

Im Moment reicht es vielleicht aus, eine Website zu programmieren, die mit dem iPhone und mit Opera durch Browser-Sniffing funktioniert - aber Googles Android kommt jetzt jede Minute und es gibt viele andere Mobiltelefone, die in naher Zukunft eine Browser-Funktionalität haben werden, die dem iPhone nahe kommt Es wäre eine Verschwendung, eine mobile Website zu entwickeln, die diese Geräte nicht so gut wie möglich unterstützt.

6
VoxPelli

Nach Tagen der Suche nach dem richtigen Weg, ein mobiles Gerät zu finden, habe ich mich entschlossen, es einfach zu halten [dumm], und ich werde einen "Mobile Device Site" -Button auf meiner Indexseite platzieren.

5
Paul

Mobile Browser erkennen - Snippets in verschiedenen Programmiersprachen.

4
ripper234

Dieser Artikel (und sein Follow-up ) scheint Nizza.

4
Milen A. Radev

Die folgende leichtgewichtige Apache-Konfiguration leistet gute Arbeit und merkt sich die Benutzervorlieben, wenn sie die PC-Version bevorzugen

<VirtualHost (your-address-binding)>   

  (your-virtual-Host-configuration)       

  RewriteEngine On     
  RewriteCond %{QUERY_STRING} !ui=pc
  RewriteCond %{HTTP_COOKIE} !ui=pc
  RewriteCond %{HTTP_USER_AGENT} "^.*(iphone|iPod|ipad|Android|symbian|nokia|blackberry| rim |opera mini|opera mobi|windows ce|windows phone|up\.browser|netfront|Palm-|Palm os|pre\/|palmsource|avantogo|webos|hiptop|iris|kddi|Kindle|lg-|lge|mot-|Motorola|nintendo ds|nitro|PlayStation portable|samsung|sanyo|sprint|sonyericsson|symbian).*$" [NC,OR]

  RewriteCond %{HTTP_USER_AGENT} "^(alcatel|audiovox|bird|coral|cricket|docomo|edl|huawei|htc|gt-|lava|lct|lg|lynx|mobile|lenovo|maui|micromax|mot|myphone|nec|nexian|nook|pantech|pg|polaris|ppc|sch|sec|spice|tianyu|ustarcom|utstarcom|videocon|vodafone|winwap|zte).*$" [NC] 

  RewriteRule /(.*) http://bemoko.com/$1 [L]

  RewriteCond %{QUERY_STRING} "ui=pc"
  RewriteRule ^/ - [CO=ui:pc:(your-cookie-domain):86400:/]
  RewriteCond %{QUERY_STRING} "ui=default"
  RewriteRule ^/ - [CO=ui:default:(your-cookie-domain):86400:/]
</VirtualHost>

Weitere Hintergrundinformationen dazu @ http://bemoko.com/training.team/help/team/pc-to-mobile-redirect

3
ian

Ich schlage ein freies Erkennungssystem vor, das auf uaprof und einem Benutzeragenten basiert: http://www.mobilemultimedia.be UAprof sollte der Primärschlüssel für die Erkennung sein, wenn es verfügbar ist, da normalerweise mehrere vorhanden sind Benutzeragenten für dasselbe uaprof. Wenn Sie dies selbst verwalten möchten, sollten Sie sich für Wurfl entscheiden, da Sie die gesamte Datenbank herunterladen und lokal selbst verwalten können.

2
Klint

Als ich kürzlich ein ähnliches Bedürfnis hatte, habe ich diesen Code gefunden, der HTTP_X_WAP_PROFILE, HTTP_ACCEPT und HTTP_USER_AGENT verwendet, um einen Browser als mobil oder nicht mobil zu identifizieren. Es ist PHP, kann aber ziemlich einfach in alles konvertiert werden, was Sie brauchen (ich habe es in VBScript für klassisches ASP implementiert). 

Ironischerweise stellte sich heraus, dass ich den Code nicht verwendet habe, weil wir uns entschieden hatten, spezifische URLs für mobile und nicht mobile Benutzer bereitzustellen, aber es funktionierte auf jeden Fall, als ich ihn testete ...

2
Dave DuPlantis

Ich kann es hier nicht sehen, aber eine andere Option, die ich derzeit untersuche, ist www.detectmobilebrowser.com

1
rrrr

Am einfachsten ist es, ein Array mit regulären Tags zu erstellen, die mit mobilen Browsern verknüpft sind. Zumindest die meisten mobilen Benutzeragenten müssen über Word Mobile, Mini, Nokia, Java ME, Android, iPhone, mobiles Betriebssystem usw. verfügen. Wenn einer mit dem Benutzeragenten über Php strpos übereinstimmt, drucken Sie einen mobilen Button oben auf der Seite . Überlassen Sie dem Benutzer die Auswahl. Ich liebe die komplette Website, da mein mobiler Browser das gleiche Erlebnis bietet, nur dass ich meistens zoomen oder scrollen muss.

1
9jabooks

OK, hier ist eine sehr einfache Antwort - wie wäre es, wenn Sie den Benutzer entscheiden lassen? Geben Sie in Ihrem Login zu Ihrem ap einen Link zur mobilen Website an. Geben Sie auf der mobilen Website einen Link "zurück zur Hauptseite" an - probieren Sie www.fazolis.com auf Ihrem mobilen Gerät - sie machen das gut.

dann registrieren Sie auf dem Link zur mobilen Website von der Browserseite ihre "Stimme" und ihren Benutzeragenten. Sie können Ihre eigene zuverlässige Liste vonIHRENKunden erstellen, die die mobile Site wünschen. Verwenden Sie diese Spezifikationen in Bezug auf die Bildschirmgröße für diese mobilen Geräte, und Sie können eine ziemlich gute Logik für eine zufriedenstellende Benutzererfahrung aufbauen. Ich würde NIEMALS zu einem Netzwerk veröffentlichen, um etwas so elementares wie dieses zu erhalten.

Ach ja und auf Ihrer "mobilen Site" - wenn Sie Ihre App semantisch gut schreiben, sollten Sie in der Lage sein, eine einzelne Site für Mobile und Browser zu präsentieren, anstatt zwei separate Seitensätze zu erstellen. Nur etwas zum Nachdenken - dies ist den zusätzlichen Aufwand und die Anstrengung wert, später Zeit zu sparen.

1
Samuel Fullman

Die meisten Informationen wie Browser, Gerät, akzeptierte Sprachen, akzeptierte Formate usw. erhalten Sie aus dem Anforderungsheader. Der oben erwähnte Benutzeragent ist Teil des Anforderungskopfes.

1
Vijesh VP

sie können WURFL-APIs verwenden, um den Gerätetyp zu ermitteln

http://wurfl.sourceforge.net/wurfl_schema.php

oder Modernizer um Browserfähigkeiten zu erkennen

0

Tatsache ist, dass die Verwendung von Useragent nicht ausreicht, um mobile Browser zu erkennen.

Sicher, vor Jahren konnte man nach bestimmten Zeichenfolgen suchen und vermuten, dass es sich um ein Nokia oder etwas anderes handelt, aber jetzt gibt es so viele Handys und so viele, die so tun, als wären sie Dinge, die nicht das etwas Feineres erfordern.

Ich habe unter link text eine großartige Seite gefunden, die auf der gleichen Lösung basiert, die MTV für alle mobilen Websites verwendet. Es ist wirklich gut, da es eine geräteunabhängige Auszeichnungssprache hat, aber noch wichtiger ist, dass sie einen Webservice-Aufruf für isMobileDevice () anbieten.

Schau einfach in das Handbuch und dann 'wie es funktioniert'.

Ich habe es für die Websites meiner Kunden verwendet und muss noch einen mobilen Browser finden, den er nicht genau erkennt. Total blendend!

0
Rich Holdsworth

sie können einen Webservice verwenden, um mobiles Surfen zu erkennen, z. 

0
don

Sie müssen die Benutzeragentenzeichenfolge mit einer zuvor definierten Liste überprüfen, wie dieser

0
hayalci

Gerade über Geräte- und Feature-Erkennung im mobilen Web mit folgenden Inhalten:

  1. Verwenden der Geräte- und Funktionserkennung zur Verbesserung der Benutzererfahrung im mobilen Web
  2. Einführung in die Geräteerkennung
  3. Ansätze zum mobilen Site-Design
    1. Nichts tun
    2. Bereitstellung einer generischen mobilen Site
    3. Gestalten mit Mobile und Anpassung
  4. Strategien zur Inhaltsanpassung und Gruppierung von Geräten
    1. Gerätegruppierung
    2. Inhaltliche Anpassung
  5. Minimierung des Anpassungsbedarfs an erster Stelle
  6. Häufige Ansätze zur Geräteerkennung
    1. Serverseitige Anpassung
    2. Kundenseitige Anpassung
    3. Server-Side User Agent (UA) und Header-Suche
    4. Serverseitige UA-Zeichenfolge kombiniert mit Nachschlagen der Gerätedatenbank
    5. Erkennung von serverseitigen User Agent-Profilen (UAProf)
    6. Erkennung basierend auf JavaScript-Technologie
    7. CSS-Medientypen
    8. CSS-Medienabfragen
  7. Zusätzliche bewährte Methoden
    1. Umleitung + manueller Link
    2. Zielseite + manueller Link
  8. Herunterladbare Beispielseite
0
Kevin Hakanson