2011-08-19 19 views
16

Sto appena iniziando a creare la mia prima versione mobile di un sito Web desktop che è stato scritto in WebForms.Rilevazione dispositivo mobile del browser in .NET

La mia domanda corrente ha a che fare con il rilevamento del dispositivo mobile/browser.

Quello che sto cercando di determinare è a) Se il dispositivo è mobile b) Quale sistema operativo (Android/IOS/etc) nel caso in cui ho bisogno di gestire qualcosa di diverso in base al sistema operativo ec) Quale dimensione dello schermo (per caricamento di fogli di stile diversi)

+0

Nessuna risposta? Ho la stessa domanda ... su cosa ti sei accontentato di una soluzione? –

+1

dare un'occhiata a questa domanda/risposta: http://stackoverflow.com/questions/9587111/mobile-site-detection-server-side-vs-client-side – avs099

+0

Usa 'Handset Detection' biblioteca mobile di rilevazione http://www.handsetdetection.com
è possibile ottenere il 'kit API di rilevamento microtelefono .NET' visitando il seguente collegamento:
http://code.google.com/p/handset-detection-asp-net-api-kit/

risposta

4

Non penso necessariamente che ciò che sto proponendo sia la soluzione migliore in molti casi, tuttavia potrebbe rivelarsi una visione alternativa dell'area del problema.

Invece di rilevare un browser mobile di per sé, che presenta alcune somiglianze/svantaggi per lo sniffing del browser.

Prendete invece l'approccio del design reattivo. Non entrerò nei dettagli del responsive design qui, perché ci sta portando fuori strada. Tuttavia, ciò che potrebbe fornire è un approccio che invece di personalizzare l'intera esperienza in base a ciò che viene rilevato dal browser, è un metodo più sottile di personalizzazione dell'esperienza basata su risoluzioni dello schermo, capacità CSS, abilitazione JavaScript ecc.

Il design reattivo non è una tecnologia per dire, ma un insieme di tecniche che consentono di migliorare progressivamente l'esperienza a seconda del browser (browser mobile) utilizzato.

Ciò che una tecnica sensibile non consente (o almeno è compromessa) è una differenza molto drammatica tra ad es. versione mobile/versione desktop. Poiché ognuno di solito inquina l'esperienza separata, ad es. html potrebbe essere nascosto su una versione mobile, ma potrebbe essere ancora scaricato in background ... ma queste tecniche si stanno sviluppando per es. JavaScript può essere utilizzato per scaricare un'immagine a bassa risoluzione su un browser mobile e un'alta risoluzione su un monitor widescreen.

Ma si può sempre inserire un collegamento a una versione mobile/desktop del sito completamente separata per consentire all'utente di decidere come fallback.

+0

grammatica nazista qui, è "di per sé", in latino "in sé" http://en.wikipedia.org/wiki/Per_se –

+0

Grazie, appena modificato e corretto alcuni dei miei terribile ortografia, come pure! Devo essere di fretta. –

12

Rilevare il tipo di browser è più semplice osservando la stringa useragent. Le parole chiave in quella stringa aiuteranno a rilevare il browser. UserAgentString.com mantiene un elenco completo di stringhe useragent, ma la cosa principale che devi cercare sono solo alcune parole chiave.

Ad esempio, la parola "blackberry" compare sempre quando si naviga da un dispositivo Blackberry. Simile a iPad e iPhone. I dispositivi Android mostrano tutti "android" nella stringa useragent, ma distinguono tra tablet e telefoni includendo la parola chiave "mobile" per i telefoni.

Ecco come si rileva Desktop, telefoni e compresse nella nostra applicazione mobile:

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

Se si utilizza qualcosa come jQuery Mobile, il sito sarà personalizzato per l'aspetto mobili indipendentemente dal tipo di dispositivo, e sarà gestire le differenze tra il motore JavaScript su diversi dispositivi.

1

WURFL è una grande risorsa per questo. È possibile configurare quali valori sono necessari (non è necessario prendere tutti i suoi argomenti). Penso che se si vuole creare il proprio soluzione-

1) Si può prendere WURFL XML 2) Lista argomenti secondo i vostri bisogni 3) Usare Reader XML per leggere il suo xml e mettere i valori nel database.

In questo modo si può avere la propria soluzione. (Anche se una questione è che i nuovi dispositivi che si registrano in seguito WURFL non verrà aggiornato automaticamente, in modo da avere l'aggiornamento in seguito voi stessi)

Problemi correlati