Je travaille chez 51Degrees.mobi. Vous pouvez détecter si un périphérique est un écran tactile en utilisant Request.Browser["IsTouchScreen"]
Cependant, l'utiliser avec élégance dans MVC est un peu plus complexe. De la recherche à la source de MobileCapableViewEngine il semble que vous pouvez faire un nouveau moteur en copiant le moteur mobile et changeant la méthode FindView:
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName,
string masterName, bool useCache)
{
string overrideViewName = controllerContext.HttpContext.Request.Browser["IsTouchScreen"] == "True"
? viewName + ".Touch"
: viewName;
ViewEngineResult result = NewFindView(controllerContext, overrideViewName, masterName, useCache);
// If we're looking for a Touch view and couldn't find it try again without modifying the viewname
if (overrideViewName.Contains(".Touch") && (result == null || result.View == null))
{
result = NewFindView(controllerContext, viewName, masterName, useCache);
}
return result;
}
Ce nouveau moteur devra alors être ajouté à la cercleuse de démarrage de moteurs mobile et créer des vues tactiles.
Avant cela, vous devez penser à la manière dont vous souhaitez séparer les périphériques. Par exemple, le Nokia X3-02 a un écran relativement petit mais serait présenté avec la même vue comme quelque chose comme un iPad. Vous devriez peut-être envisager d'utiliser le système d'exploitation de l'appareil, par exemple Request.Browser["PlatformName"]
Enfin, 51Degrees.mobi Foundation version 2 présente nos propres données de périphérique qui utilise différents noms de capacité de la précédente. Vous pouvez lire mroe à ce sujet à 51Degrees.mobi
ne fonctionne pas sur un appareil Android, ne fonctionne pas sur Windows 7 ordinateur portable avec écran tactile soit :( –
La propriété n'est plus Request.Browser ["IsTouchScreen"] mais maintenant ["HasTouchScreen"] et n'est pas fourni dans leur version Lite-free. –