Comment fonctionne IsMobileDevice?

MSDN vous permet de détecter facilement un navigateur mobile:

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

En fait, il semble que vous pouvez également 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 parameters par défaut intégrés pour ASP.NET 2.0?

Un certain nombre de fichiers * .browser 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 des fichiers * .browser pour correspondre à la chaîne User-Agent entrante, puis définit un groupe de propriétés en fonction de chaque correspondance trouvée (il peut y en avoir plusieurs dans la hiérarchie).

Si vous avez besoin d’une prise en charge approfondie des périphériques mobiles, envisagez d’installer le MDBF, qui prend en charge environ 400 périphériques:

http://mdbf.codeplex.com/

Maintenant, après 4 ans, c’est encore plus simple

 Request.Browser.IsMobileDevice 

Puisque pour la plupart des sites, c’est la taille de l’écran qui compte et pas tellement les capacités (du moins quand on parle de téléphones modernes avec des choses comme Safari et Chrome).

 Request.Browser.ScreenPixelsHeight 

et

 Request.Browser.ScreenPixelsWidth 

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

Ma compréhension actuelle est qu’il n’existe qu’une seule solution au problème de la détection de la mobilité d’un navigateur et de ses capacités réelles. Cette solution est le WURFL de ScientiaMobile (http://www.scientiamobile.com). Qui, à partir du 30 août, n’est plus gratuit pour toutes les utilisations. WURFL est maintenant publié avec une API ASP.NET sous AGPL. Le référentiel de données est également fourni avec une licence spécifique interdisant à la fois la copie et l’utilisation d’API différentes de la norme (sauf si vous achetez une licence commerciale).

Donc, pour des raisons pratiques, d’autres approches telles que 51Degrees ne peuvent pas être utilisées avec des versions plus récentes et futures du référentiel WURFL, ce qui compliquera la détection de nouveaux périphériques par 51Degrees (Windows Phone 7.5, par exemple).

En ce qui concerne MDBF (un projet rejeté), il peut toujours fonctionner pour détecter si un périphérique est mobile (bien meilleur que le IsMobileDevice dans ASP.NET). Il n’est pas entièrement fiable en ce qui concerne les propriétés de l’appareil. Il insiste sur le fait que mon HTC Desire Android a une taille d’écran de 240×320, ce qui est manifestement incorrect.

Mon entreprise a acheté une licence WURFL et nous sums absolument d’accord avec cela.

Les problèmes ont été résolus alors que j’ai ajouté 51Degrees, il suffit d’append 51degrees en utilisant Nuget c’est tout. Voir plus ici https://51degrees.codeplex.com