2010-06-06 4 views
6

Je travaille sur une détection avancée du navigateur, et j'ai téléchargé le fichier navigateur MDBF de CodePlex.Request.Browser.Platform ne renvoie pas iPad, OSX ou Windows7

Malheureusement, mon Request.Browser.Platform, ainsi que quelques autres choses est de retour « inconnu » à la fois sur mon iPad Mac OS X (Snow Leopard) et sur Windows7

Est-ce que quelqu'un sait d'un bon fichier .browser avancé là-bas qui fait la même chose pour les appareils non mobiles que le MDBF fait pour les appareils mobiles?

Répondre

9

J'ai résolu mon problème particulier (détection iPad) avec le fichier suivant dans le dossier App_Browsers de ma demande:

<browsers> 
    <!-- Mozilla/5.0 (iPad; U; CPU OS 4_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C134 Safari/6533.18.5 --> 
    <gateway id="IPad" parentID="Safari"> 
    <identification> 
     <userAgent match="iPad" /> 
    </identification> 

    <capabilities> 
     <capability name="mobileDeviceModel"    value="IPad" /> 
     <capability name="mobileDeviceManufacturer"  value="Apple" /> 
     <capability name="isMobileDevice"     value="true" /> 
    </capabilities> 
    </gateway> 
</browsers> 

Puis dans le code je test:

if (Request.Browser.MobileDeviceModel == "IPad") 
    ... 
+0

Je préfère: if (Request.Browser.MobileDeviceManufacturer! = "Apple") – Softlion

1

Utilisez plutôt Request.UserAgent.

Beware qu'il comprend le mot Mobile ainsi:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) 
    AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 
    Mobile/7B367 Safari/531.21.10 


De Apple sur la préparation du contenu pour iPad:
http://developer.apple.com/safari/library/technotes/tn2010/tn2262/index.html

+5

Tout cela est très bien, mais je aime vraiment utiliser les fichiers '.browser'. Y at-il un fichier de navigateur maintenu pour ce genre de chose? Je paierais pour soutenir un bon projet plutôt que de maintenir le mien, ou de pirater les informations sur le UserAgent. Au fur et à mesure que de nouveaux périphériques sont lancés, ce problème ne fera que se répéter. –

Questions connexes