ASP.NET MVC 3 Semplice e affidabile Rilevamento dispositivo mobile: usa 51Degrees.mobi o GO Native?

StackOverflow https://stackoverflow.com//questions/9706698

Domanda

Nella mia applicazione Web ASP.NET MVC 3 Sto sovrascrivendo il nome della vista in un motore di visualizzazione personalizzato per presentare una vista diversa ottimizzata per dispositivi mobili non tablet.

Tutto ciò che voglio eseguire questa vista override è un valore accurato per Request.Browser.IsMobileDevice e la larghezza del display nativo del dispositivo.

51Degrees.mobi si sente molto pesante e contorta per questo semplice caso d'uso. Forse è solo la mia frustrazione nel cercare di guadagnare tutti gli esempi e la documentazione sul sito web di 51Degrees per ottenere risposte a cosa sembrano semplici domande per una semplice implementazione.

Assente 51Degrees, ottengo valori per Request.Browser.IsMobileDevice e Request.Browser.ScreenPixelsWidth. Ho notato che per i browser desktop la larghezza è sempre 640 mentre Request.Browser.Capabilities["51Degrees.mobi"] contiene un valore di "Sconosciuto" per ScreenPixelsWidth. Immagino che il valore sconosciuto sia più accurato dato la natura lato server dell'attuazione.

La mia domanda principale è: Ho davvero bisogno di 51Degreti per i miei semplici requisiti?

Se non uso 51Degrees, ci sono alcuni esempi specifici di browser che non riuscirò a rilevare ISmobilDevice e la larghezza dello schermo correttamente? Ad esempio, la richiesta .NET integrata.Browser.Browser.Sismobile e ScreenpixelsWidth valori è inaccurato o assente per il nuovo iPad quando si esce o per l'ultima versione del browser Android? Il mio sito ottiene circa il 65% di utenti mobili, molti supportati a zoppo-telefoni con browser come il subrowser, quindi ottenere il diritto mobile è un po 'importante.

Se utilizzo 51Degrees, devo sempre eseguire il drill in Richiesta.Browser.capabilità ["51Degrees.mobi"]? Oppure 51Degrees Sostituisci / aggiorna il valore di richiesta.Browser.ismobileDevice per essere sincronizzato con la sua valutazione del browser? Chiaramente non sovrascrive la richiesta.Browser.screenpixelswidth.

Sono aperto alle risposte di "Stai sbagliando, qui è un modo migliore" finché non suggeriscono MVC 4 o coinvolgendo una soluzione a pagamento come Wurfl.

È stato utile?

Soluzione

Questo FAQ spiega quali proprietà di richiesta.Browser sono sovrascritte da 51Degrees.mobi.

Ci sono pochissimi casi in cui dovresti mai accedere direttamente al tasto "51Degrees.mobi" direttamente.Dove la proprietà è stata scavalcata, come normalmente lo faresti.Dove la proprietà non è sovrascritta o non coperta da HTTPBROSERCAPABILITÀ è necessario utilizzare il nome della proprietà.Ad esempio:

VAR ISTABLET= RICHIESTA.BROWSER ["ISTABLET"];

Vedi questo link per un elenco di proprietà disponibili.

Come dovrebbe sovrascrivere screenpixelswidth sarei interessato a saperne di più sul tuo ambiente di test.Come .NET richiede che il valore sia numerico se 51Degrees.mobi non può determinare la dimensione (sconosciuta), il valore non sarà sovrascritto.

Grazie per aver considerato 51Degrees.mobi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top