2011-08-19 18 views
16

Właśnie zaczynam tworzyć moją pierwszą mobilną wersję strony internetowej na komputery napisane w WebForms.Wykrywanie urządzeń przeglądarki mobilnej w .NET

Moje bieżące pytanie dotyczy wykrywania urządzeń mobilnych/przeglądarek.

Co staram się określić to: a) Jeśli twoje urządzenie jest mobilne b) Jakie OS (Android/IOS/etc) w przypadku, gdy potrzebuję obsługiwać coś inaczej na podstawie systemu operacyjnego i c) Jaki rozmiar ekranu (dla ładowanie różnych arkuszy stylów)

+0

Brak odpowiedzi? Mam to samo pytanie ... co postanowiłeś jako rozwiązanie? –

+1

spójrz na to pytanie/odpowiedź: http://stackoverflow.com/questions/9587111/mobile-site-detection-server-side-vs-client-side – avs099

+0

Użyj biblioteki detekcji mobilnej "Handset Detection" http://www.handsetdetection.com
można uzyskać zestaw API wykrywania zestawu .NET NET, odwiedzając następujący odsyłacz:
http://code.google.com/p/handset-detection-asp-net-api-kit/

Odpowiedz

4

Niekoniecznie myślę, że to, co proponuję, jest najlepszym rozwiązaniem w wielu przypadkach, jednak może to być alternatywny wgląd w obszar problemowy.

Zamiast wykrywania przeglądarki mobilnej jako takiej, która ma pewne podobieństwa/wady do podsłuchiwania przeglądarki.

Zamiast tego przyjmij podejście elastycznego projektu. Nie będę tutaj szczegółowo omawiał responsywnego projektu, ponieważ odsuwa nas od ścieżki. Jednak to, co może zapewnić, to podejście, które zamiast dostosowywać całe doświadczenie w oparciu o wykrytą przeglądarkę, jest subtelniejszą metodą dostosowywania doświadczenia w oparciu o rozdzielczości ekranu, możliwości css, włączanie obsługi JavaScript itp.

Responsywny projekt nie jest technologią za powiedzenie, ale zestawem technik, które umożliwiają stopniowe zwiększanie poziomu doświadczenia w zależności od używanej przeglądarki (przeglądarki mobilnej).

To, na co technika responsywna naprawdę nie pozwala (lub przynajmniej jest zagrożona), to bardzo dramatyczne różnice między np. wersja mobilna/wersja na komputery. Ponieważ każdy z nich zwykle zanieczyszcza oddzielne doświadczenie, np. html może być ukryty w wersji mobilnej, ale może być nadal pobierany w tle ... ale techniki te rozwijają się np. Do pobrania obrazu o niskiej rozdzielczości w przeglądarce mobilnej i wysokiej rozdzielczości na monitorze panoramicznym można użyć kodu JavaScript.

Ale zawsze możesz umieścić link do całkowicie oddzielnej wersji strony mobilnej/wersji na komputery, aby umożliwić użytkownikowi podjęcie decyzji o cofnięciu się.

+0

Grammar nazi tutaj, to jest "per se", łacina dla "w sobie" http://en.wikipedia.org/wiki/Per_se –

+0

Dzięki, po prostu zredagowałem i poprawiłem niektóre z moich okropnych pisowni! Musiałem się spieszyć. –

12

Wykrywanie typu przeglądarki jest najprostsze, patrząc na ciąg znaków useragent. Słowa kluczowe w tym ciągu pomogą wykryć przeglądarkę. UserAgentString.com utrzymuje dokładną listę ciągów useragent, ale najważniejsze, czego potrzebujesz, to tylko kilka słów kluczowych.

Na przykład słowo "blackberry" pojawia się tylko podczas przeglądania z urządzenia Blackberry. Podobnie z iPadem i iPhonem. Wszystkie urządzenia z Androidem wyświetlają "android" w ciągu znaków użytkownika, ale odróżniają tablety od telefonów, dodając słowo kluczowe "telefony komórkowe" na telefony.

Oto jak możemy wykryć stacjonarnych, komórkowych i tabletów w naszej aplikacji mobilnej:

public enum DeviceType 
    { 
     Desktop, 
     Tablet, 
     Phone 
    } 

    public static DeviceType UserAgentToDeviceType(string userAgent) 
    { 
     if (userAgent.ToLowerInvariant().Contains("blackberry")) 
      return DeviceType.Phone; 

     if (userAgent.ToLowerInvariant().Contains("iphone")) 
      return DeviceType.Phone; 

     if (userAgent.ToLowerInvariant().Contains("ipad")) 
      return DeviceType.Tablet; 

     if (userAgent.ToLowerInvariant().Contains("android")) 
     { 
      if (userAgent.ToLowerInvariant().Contains("mobile")) 
       return DeviceType.Phone; 
      else 
       return DeviceType.Tablet; 
     } 

     return DeviceType.Desktop; 
    } 

Jeśli używasz coś podobnego jQuery Mobile, witryna zostanie dostosowany do mobilnego wygląd niezależnie od typu urządzenia, a to będzie obsługiwać różnice między silnikiem JavaScript na różnych urządzeniach.

1

WURFL to świetne źródło informacji. Możesz skonfigurować wymagane wartości (nie musisz przyjmować wszystkich swoich argumentów). Myślę, że jeśli chcesz stworzyć swój własny Roztwór podstawowy

1) Możesz wziąć WURFL XML 2) Argumenty skróconej jak na swoje potrzeby 3) stosowanie XML Reader do czytania jego wartości xml i umieścić w swojej bazie danych.

W ten sposób możesz mieć własne rozwiązanie. (Chociaż jedną kwestią jest to, że nowe urządzenia, które zarejestrują się później w WURFL, nie zostaną automatycznie zaktualizowane, więc musisz je później zaktualizować)

Powiązane problemy