Share via


Recommandations sur le filtrage de périphérique

Mise à jour : novembre 2007

Cette rubrique traite de la création de filtres de comparaison et de filtres de délégué évaluateur pour les contrôles mobiles ASP.NET. Les filtres de périphérique offrent un mécanisme de création de critères nommés, que vous pouvez utiliser pour spécifier des périphériques ou des propriétés de périphériques mobiles. Ces filtres sont stockés dans la section <deviceFilters> du fichier Web.config.

Chaque filtre de périphérique correspond à un ou plusieurs types de périphériques, et un seul périphérique peut correspondre à plusieurs filtres. Par exemple, un périphérique Pocket PC peut correspondre au filtre IsColor s'il s'agit d'un périphérique en couleurs, au filtre IsPDA s'il s'agit d'un assistant numérique personnel (PDA, Personal Digital Assistant) et au filtre IsHTML32 s'il s'agit d'un navigateur HTML.

Pour chaque filtre, vous ajoutez un élément <filter> dans la section <deviceFilters> du fichier Web.config.

Vous pouvez spécifier des filtres de comparaison et de délégué évaluateur.

Filtres de comparaison

Les filtres de comparaison permettent de comparer la valeur d'une propriété MobileCapabilities à un argument. La syntaxe d'un filtre de comparaison est la suivante :

<filter
    name="nameofFilter"
    compare="propertyName"
    argument="filterargument" />

Dans un filtre de comparaison, l'élément <filter> possède trois propriétés :

  • l'attribut name, qui représente le nom du filtre ;

  • l'attribut compare, qui contient la propriété évaluée par le filtre ;

  • l'attribut argument, qui représente l'argument auquel la valeur de propertyName est comparée. Si aucun argument n'est fourni, la valeur null est utilisée pour la comparaison.

Dans l'exemple suivant, si la valeur de PreferredRenderingType est wml11, une correspondance est établie avec le filtre.

<filter
    name="isWML11"
    compare="PreferredRenderingType"
    argument="wml11" />

Lorsque le filtre est utilisé dans un élément <Choice> et qu'une correspondance est établie avec celui-ci, ASP.NET sélectionne le contenu spécifique au périphérique présent dans les modèles, à l'intérieur de l'élément <Choice>.

Filtres de délégué évaluateur

Les filtres de délégué évaluateur retournent la valeur true ou false d'une méthode personnalisée. La méthode calcule la valeur de retour sur toutes les propriétés de la classe MobileCapabilities. La valeur retournée sert à déterminer si une correspondance existe avec le filtre.

La syntaxe d'un filtre de délégué évaluateur est la suivante :

<filter
    name="nameOfFilter"
    type="className"
    method="methodName" />

Dans un filtre de délégué évaluateur, il existe trois propriétés :

  • l'attribut name, qui représente le nom du filtre ;

  • l'attribut type, qui représente le type de classe fournissant le délégué évaluateur. Le nom doit être qualifié complet. ASP.NET recherche le type dans l'assembly spécifié.

  • l'attribut method qui représente le nom d'une méthode sur la classe Type. La méthode retourne une valeur booléenne qui indique si le périphérique actif correspond au filtre d'après l'instance MobileCapabilities qui lui a été passée.

Dans l'exemple suivant, si la méthode IsGPSEnabled retourne true, une correspondance est établie avec le filtre.

<filter
    name="GPSEnabled"
    type="MyApplication.MyCapabilityEvaluators,MyAssembly"
    method="IsGPSEnabled"/>

L'exemple suivant est le squelette d'une déclaration relative à la méthode IsGPSEnabled.

namespace MyApplication
{
    public class MyCapabilityEvaluators
    {
        public static bool IsGPSEnabled(
            System.Web.Mobile.MobileCapabilities capabilities,
            String unusedArg)
        {
            // Any necessary proccessing goes here.
        }
    }
}

Pour ajouter la prise en charge d'un filtre, ajoutez une ligne à la section <deviceFilters> du fichier Web.config. Par exemple, si vous avez compilé le filtre précédent dans un assembly nommé MyApplication.dll, ajoutez la ligne suivante au fichier Web.config :

<filter name="IsGPSEnabled"
   type="MyApplication.MyCapabilityEvaluators,MyApplication"
   method="IsGPSEnabled" />

Voir aussi

Concepts

Fonctionnalités du navigateur étendues

Rendu spécifique au périphérique

Référence

<filter>, élément