2008-09-26 16 views
56

Zaczynamy podążać ścieżką obsługi przeglądarki mobilnej dla internetowej aplikacji e-commerce (Java/Servlet). Oczywiście jest wiele decyzji, które należy podjąć, ale wydaje mi się, że podstawą jest niezawodne wykrywanie przeglądarek mobilnych i podejmowanie decyzji dotyczących odpowiedniego zwracania treści. Czy istnieje standardowy sposób szybkiego określenia tego na podstawie żądania http, a najlepiej zebrać więcej informacji na temat danej przeglądarki i urządzenia, które je wysyła (rozmiar ekranu, możliwości HTML itd.?).Standardowy sposób wykrywania przeglądarek mobilnych w aplikacji internetowej opartej na żądaniu http

Byłbym wdzięczny za wszelkie dodatkowe informacje, które mogą być przydatne dla kogoś, kto podążył tą drogą do pobrania aplikacji webowej na dużą skalę i zaprojektował wsparcie dla przeglądarki mobilnej od strony programistycznej.

[edytuj] Z pewnością rozumiem nagłówek żądania, a informacja o bazie standardowych agentów użytkownika jest bardzo pomocna. Dla osób mówiących o "innych" właściwościach nagłówka żądania, gdybyś mógł dołączyć podobną znormalizowaną nazwę/źródło wartości, które byłyby dużą pomocą.

[edytuj] Kilku użytkowników zaproponowało rozwiązania polegające na wywołaniu połączenia za pośrednictwem usługi sieciowej, która wykona wykrywanie. Chociaż jestem pewien, że to działa, nie jest to dobre rozwiązanie dla witryny e-commerce dla przedsiębiorstw z dwóch powodów: 1) szybkości. Wywołanie połączenia przez każde żądanie strony do strony trzeciej miałoby ogromne konsekwencje dla wydajności. 2) zależność/legalny. Zwróciliśmy czas reakcji naszej strony i kluczowe funkcje do ich usług, co jest okropne ze względów prawnych i ryzyka.

+0

Można zobaczyć kilka pomysłów w http://stackoverflow.com/questions/6844020/way-to -do-content-adaptacja-do-telefonu –

Odpowiedz

42

Czy standardowym sposobem nie jest sprawdzenie agenta użytkownika? Oto database of user agents, którego możesz użyć do wykrywania przeglądarek mobilnych.

+2

Nie zdawałem sobie sprawy, że istnieje aktywnie utrzymane odniesienie do nich. Dzięki. – Peter

+2

WURFL dla java to bałagan. Powodzenia w znalezieniu danych wiązań Java do pobrania. –

+1

WURFL to świnia pamięci. I 15 MB XML? Ale robi to, co mówi. – boring

1

Otrzymasz większość informacji, takich jak przeglądarka, urządzenie, akceptowane języki, akceptowane formaty itp. Z nagłówka żądania. Wspomniany wyżej program użytkownika jest częścią nagłówka żądania.

6

Podczas gdy użytkownik mógł wykryć przeglądarkę mobilną za pośrednictwem agenta użytkownika, przeglądanie przeglądarki na platformie PC pokazało, że sniffowanie agentów użytkownika nie jest tak naprawdę dobrą rzeczą.

Co należy zrobić najlepiej, aby określone style były stosowane w zależności od rodzaju nośnika lub że inna odpowiedź powinna być wysyłana w oparciu o nagłówek inny niż program użytkownika - taki jak nagłówek Accept, który określa rodzaj treści preferuje przeglądarka.

Teraz może wystarczyć kodowanie witryny współpracującej z iPhonem i Opery przez wąchanie przeglądarki - ale Google Googles nadchodzi już za chwilę i istnieje wiele innych telefonów komórkowych, które będą miały funkcjonalność przeglądarki w pobliżu iPhone'a w niedalekiej przyszłości byłoby to marnotrawstwem na stworzenie witryny mobilnej, która nie obsługiwałaby tych urządzeń tak dobrze, jak to tylko możliwe od zera.

20

@ Odpowiedź Dawida wspomniana za pomocą WURFL - co jest prawdopodobnie najlepszą opcją. Uważaj jednak, że wskaźnik sukcesu wynosi zwykle około 60% (z moich i innych doświadczeń). Ponieważ przewoźnicy ciągle zmieniają UA i ilość istniejących profili urządzeń (60 000+?), Nie ma kuloodpornego sposobu na uzyskanie pożądanych danych.

Trochę ostrzeżenia przed poleganiem na DB urządzenia.Chciałbym zachować opcje użytkownika otwarte, pozwalając im na zmianę opcji sesji w przypadku, gdy źle się domyśliłem.

+2

+1, aby uzyskać poradę, aby umożliwić użytkownikowi samodzielne wybieranie numeru – mikek3332002

0

za pomocą usługi internetowej można wykryć przeglądanie w telefonie komórkowym, takie jak handsetdetection.com.

+2

Wywołanie połączenia za pomocą kabla dla każdego żądania strony nie jest możliwe z przyczyn związanych z wydajnością. – Peter

2

proponuję darmowy system wykrywania, który jest oparty na Agencyjnego i User Agent: http://www.mobilemultimedia.be Agencyjnego powinno być kluczem podstawowym do wykrywania kiedy jest ona dostępna, ponieważ istnieją zazwyczaj kilka agentów użytkowników na tym samym Agencyjnego. Jeśli chcesz zarządzać tym samodzielnie, powinieneś przejść do Wurfl, ponieważ możesz pobrać całą bazę danych i zarządzać nią lokalnie.

0

Faktem jest, że samo poleganie na użytkowniku nie jest wystarczająco dobre, aby wykryć przeglądarki mobilne.

Pewnie, lata temu można było wyszukiwać w poszukiwaniu pewnych ciągów i przypuszczać, że to była Nokia lub coś takiego, ale teraz jest tak wiele telefonów tam, i tak wiele osób udaje, że są rzeczy, które nie są czymś więcej wyrafinowany jest potrzebny.

Znalazłem świetną witrynę pod adresem link text, która opiera się na tym samym rozwiązaniu, którego używa MTV dla wszystkich swoich witryn mobilnych. Jest NAPRAWDĘ dobry, ponieważ posiada niezależny od urządzenia język znaczników, ale co ważniejsze, oferuje wywołanie usługi web dla isMobileDevice().

Wystarczy spojrzeć w instrukcji, a następnie "jak to działa".

Używam go dla witryn moich klientów i nie znalazłem jeszcze przeglądarki mobilnej, której nie wykryłbym dokładnie. Całkowicie oślepiający!

+2

Nie jest to uzasadnione ze względu na wydajność - "Używanie protokołu WAPL jest niezwykle proste i wymaga jedynie przekazujesz prawidłową WAPL do serwerów Wapple za pomocą usług internetowych SOAP lub REST. Serwer usługi WWW odpowiada znacznikiem, który można wydrukować na urządzeniu. Masz pełną kontrolę nad treścią, projektowaniem i elementami prezentacji. " – Peter

+1

Zapewne istotne jest wskazanie, że odbierającym jest CTO organizacji "wapple", która publikuje wapl.info i inne powiązane usługi świadczone przez wapple. http://www.gomonews.com/richwapple/ – Cheekysoft

2

Gdy miałem podobną potrzebę niedawno znalazłem this code który używa HTTP_X_WAP_PROFILE, HTTP_ACCEPT i HTTP_USER_AGENT zidentyfikować przeglądarkę jako mobilny lub non-mobile. Jest to PHP, ale można go dość łatwo przekonwertować na wszystko, czego potrzebujesz (zaimplementowałem w VBScript dla klasycznej ASP).

Paradoksalnie okazało się, że nie skończy się za pomocą kodu, ponieważ zdecydowaliśmy się przedstawić konkretne adresy URL dla użytkowników telefonów komórkowych i stacjonarnych, ale na pewno pracował kiedy sprawdzając je ...

5

Po wielu dniach poszukiwań odpowiedniego sposobu na wykrycie urządzenia mobilnego postanowiłem, że będzie to proste [głupie], a na stronie indeksu umieścę przycisk "Urządzenie mobilne" .... to tylko jedno kliknięcie!

0

Właśnie natknąłem Device and feature detection on the mobile web z tych treści:

  1. Korzystanie wykrywanie urządzeń i funkcji, aby poprawić doświadczenia użytkownika w sieci mobilnej
  2. Wprowadzenie do wykrywanie urządzenia
  3. Podejścia do projektowania witryn mobilnych
    1. zrobić nic
    2. zapewniając Generic stronka
    3. Projektowanie z telefonu i adaptacji na uwadze
  4. zawartość adaptacyjnych i urządzeń grupowania strategii
    1. Device grupowania
    2. Content adaptacja
  5. Mini mising potrzebę adaptacji w pierwszej kolejności
  6. wspólnego podejścia do wykrywania urządzeń
    1. dostosowanie po stronie serwera
    2. dostosowanie po stronie klienta
    3. po stronie serwera User Agent (UA) i nagłówek odnośnika
    4. Server - ciąg znaków UA połączony z wyszukiwaniem bazy danych urządzenia
    5. Wykrywanie użytkowników po stronie serwera (UAProf)
    6. Wykrywanie oparte na technologii JavaScript
    7. typów mediów CSS
    8. mediów CSS odpytuje
  7. Additional najlepszych praktyk
    1. Przekierowanie + instrukcja Link
    2. strony docelowej + instrukcja Link
  8. ściągnięcia przykładowa strona
1

OK, oto bardzo prosta odpowiedź - co powiesz na decyzję użytkownika? po zalogowaniu się do ap, podaj link do strony mobilnej. w witrynie mobilnej podaj link "z powrotem do strony głównej" - wypróbuj www.fazolis.com na swoim urządzeniu mobilnym - robią to dobrze.

następnie, na łączu do strony mobilnej z witryny przeglądarki, zarejestruj ich "głosowanie" i ich klienta użytkownika. Możesz zbudować własną, niezawodną listę klientów o numerach YOUR, którzy chcą mieć witrynę mobilną. Użyj tego ożenił się ze specyfikacją rozmiaru ekranu dla tych urządzeń mobilnych i możesz zbudować całkiem dobrą logikę dla satysfakcjonującego doświadczenia użytkownika. NIGDY nie powiem do źródła sieciowego czegoś tak elementarnego jak ten.

Och i na twojej "stronie mobilnej" - jeśli dobrze napiszesz swój kod semantyczny, to powinieneś być w stanie przedstawić jedną stronę dla telefonu komórkowego i przeglądarki, a także napisać dwa osobne zestawy stron. Po prostu o czym warto pomyśleć - jest to warte dodatkowej myśli i wysiłku, aby zaoszczędzić czas później.

3

Poniższy waga robi bardzo dobrą robotę i zapamiętuje preferencje użytkownika, jeśli wolą wersję PC

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

tło Więcej na ten temat @http://bemoko.com/training.team/help/team/pc-to-mobile-redirect

1

Najprostszym sposobem jest utworzenie tablicy z regularnych tagi związane z przeglądarek mobilnych. Przynajmniej większość mobilnych programów użytkownika musi mieć słowo "mobile", "mini", "nokia", "java" ME, "android", "iphone", "mobilny" system operacyjny itd. Jeśli jakikolwiek jest dopasowany do agenta użytkownika, używając php strpos, wydrukuj przycisk mobilny na górze strony. . Pozostaw użytkownikowi wybór. Uwielbiam całą witrynę, ponieważ moja przeglądarka mobilna zapewnia mi to samo doświadczenie, z tym wyjątkiem, że muszę powiększać lub przewijać większość razy.

0

można użyć WURFL API do wykrywania typu urządzenia

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

lub Modernizer do wykrywania zdolności przeglądarki

Powiązane problemy