43 votes

Comment fonctionne IsMobileDevice?

MSDN rend le son si facile à détecter un navigateur mobile:

 if (Request.Browser["IsMobileDevice"] == "true" ) 
{
    Response.Redirect("MobileDefault.aspx");
}
 

En fait, il semblerait que vous puissiez simplement vérifier Request.Browser.IsMobileDevice. Mais comment cela fonctionne-t-il réellement? Je n'ai même pas de fichier .browser ... que se passe-t-il dans les coulisses ici? Existe-t-il des valeurs par défaut intégrées pour ASP.NET 2.0?

62voto

RickNZ Points 12053

Un certain nombre de *.navigateur de fichiers sont livrés avec .NET:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

Le moteur d'exécution utilise des expressions régulières à partir de la *.navigateur de fichiers pour le match contre la future chaîne de l'Agent Utilisateur, puis définit un tas de propriétés en fonction de chaque match qu'il trouve (il peut y en avoir plusieurs dans la hiérarchie).

Si vous avez besoin de profondeur mobile device support, pensez à installer le MDBF, qui ajoute le support pour environ 400 appareils:

http://mdbf.codeplex.com/

1voto

Clever Human Points 3174

Étant donné que pour la plupart des sites, c'est la taille de l'écran qui compte et non les capacités (du moins lorsque vous parlez de téléphones modernes contenant des éléments tels que Safari et Chrome), est-ce que vérifier la résolution n'aurait pas de sens?

 Request.Browser.ScreenPixelsHeight
 

et

 Request.Browser.ScreenPixelsWidth
 

1voto

Dino Esposito Points 76

Ma compréhension est qu'il y a juste une solution exacte au problème de détecter si un navigateur est mobile et suivant la détection de ses capacités réelles. Cette solution est ScientiaMobile de WURFL (http://www.scientiamobile.com). Qui, en tant que de Aug30, n'est plus libre pour chaque utilisation. WURFL est maintenant disponible avec une ASP.NET API sous licence AGPL. Le référentiel de données est également livré avec une licence spécifique qui interdit la copie et l'utilisation avec les Api différent de la norme (sauf si on achète une licence commerciale).

Donc, dans la pratique d'autres approches, telles que 51Degrees ne peut pas être utilisée avec les plus récentes et les futures versions de la WURFL référentiel et ce sera difficile pour 51Degrees pour détecter les nouveaux appareils (Windows Phone 7.5, par exemple).

Comme pour MDBF a rejeté le projet), il peut encore travailler pour détecter si un périphérique mobile (beaucoup mieux que le IsMobileDevice dans ASP.NET). Il n'est pas entièrement fiable que la mesure des propriétés de l'appareil sont concernés. Il insiste sur le fait que mon HTC Desire Android dispose d'un 240x320 taille de l'écran, ce qui est manifestement incorrecte.

Mon entreprise a acheté un WURFL de licence et nous sommes absolument OK avec ça.

1voto

kd7 Points 16740

Je ne compterais pas sur le lien MSDN, il n’existe malheureusement pas de norme commune pour les navigateurs mobiles et beaucoup essaient d’imiter leurs homologues non mobiles. En outre, il retournera true s'il ne reconnaît pas. Voir ce lien .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X