Ensemble d'adaptateurs WML

Mise à jour : novembre 2007

L'ensemble d'adaptateurs WML consiste en des classes pouvant être utilisées pour procéder au rendu de pages Web mobiles ASP.NET sur les clients qui prennent en charge WML v1.1 ou WML v1.2. Certaines méthodes et propriétés peuvent ne pas être incluses dans cette documentation. Le tableau suivant répertorie les classes principales incluses dans l'ensemble d'adaptateurs WML.

Ensemble d'adaptateurs pour les périphériques WML

Espace de noms de la classe d'adaptateur principale

Classe de base abstraite ControlAdapter

WmlControlAdapter

Classe HtmlFormAdapter

WmlFormAdapter

Classe abstraite PageAdapter

WmlPageAdapter

Classe MobileTextWriter

WmlMobileTextWriter

Un navigateur UP.Browser d'Openwave utilise un adaptateur de page et un writer de texte différents. Le tableau suivant répertorie les classes principales qui sont utilisées par l'ensemble d'adaptateurs prenant ces navigateurs en charge.

Ensemble d'adaptateurs pour les navigateurs UP.Browsers

Espace de noms de la classe d'adaptateur principale

Classe de base abstraite ControlAdapter

WmlControlAdapter

Classe HtmlFormAdapter

WmlFormAdapter

Classe abstraite PageAdapter

UpWmlPageAdapter

Classe MobileTextWriter

UpWmlMobileTextWriter

Remarque :

Avec UP.Browser 4.1 ou UP.Browser 3.2, la méthode Redirect se comporte toujours comme si la valeur de la propriété SupportsRedirectWithCookie de l'objet HttpBrowserCapabilities était false, sauf si la propriété Cookieless dans la section SessionState du fichier Web.config a explicitement la valeur true.

Dans ASP.NET 1.1, les options pour ce paramètre étaient true ou false mais, avec ASP.NET 2.0, les choix sont développés et AutoDetect est maintenant le paramètre par défaut. Si, pour votre application Web, l'attribut cookieless de la section <sessionState> du fichier Web.config a une valeur booléenne, la méthode Redirect fonctionnera comme prévu pour ces navigateurs.

Sélection

L'ensemble d'adaptateurs WML est sélectionné si la propriété PreferredRenderingType de la classe MobileCapabilities retourne PreferredRenderingTypeWml11 ou PreferredRenderingTypeWml12.

Rendu adaptatif

L'ensemble d'adaptateurs WML est capable de s'adapter considérablement aux diverses fonctionnalités des téléphones portables WML. Il appelle donc en fait la méthode Render deux fois pour chaque formulaire et ses contrôles enfants. Lors du premier passage, le writer est en mode d'analyse et utilise tous les appels qu'il reçoit pour analyser la sortie de formulaire. Au cours du deuxième passage, le formulaire est effectivement affiché.

Évitez de créer des adaptateurs qui distinguent les passages. Si cela est absolument nécessaire, vous pouvez écrire un adaptateur étant capable d'accéder au mode en cours en vérifiant la propriété AnalyzeMode de la classe WmlMobileTextWriter.

Rendu par défaut

Les étapes suivantes présentent les rendus par défaut des classes d'adaptateur de page et de formulaire dans l'ensemble d'adaptateurs WML.

L'adaptateur de page exécute les étapes suivantes :

  1. Appelle les méthodes BeginResponse et BeginFile pour le writer. Le type de contenu est text/vnd.wap.wml.

  2. Écrit une balise d'ouverture <wml>.

  3. Affiche le formulaire actif.

  4. Affiche les formulaires liés comme faisant partie du même paquet WML, si cela est possible.

  5. Écrit une balise de fermeture </wml>.

  6. Appelle les méthodes EndFile et EndResponse.

L'adaptateur de formulaire exécute les étapes suivantes :

  1. Définit le writer en mode d'analyse.

  2. Appelle la méthode BeginForm du writer.

  3. Affiche le contenu du formulaire. Les résultats ne sont pas envoyés au périphérique, mais sont analysés par le writer.

  4. Appelle la méthode EndForm du writer.

  5. Définit le writer en mode réel.

  6. Appelle la méthode BeginForm du writer.

  7. Affiche le contenu du formulaire.

  8. Appelle la méthode EndForm du writer.

Utilisation des styles

La classe WmlMobileTextWriter fournit un certain nombre de méthodes d'assistance qui vous aident à utiliser les informations de style pour afficher le contenu :

  • Les méthodes EnterLayout et ExitLayout permettent à un adaptateur d'émettre un balisage afin de commencer et de finir un bloc en utilisant la mise en forme de paragraphe d'un style donné.

  • Les méthodes EnterFormat et ExitFormat permettent à un adaptateur d'émettre un balisage afin de commencer et de finir un bloc en utilisant la mise en forme de caractère d'un style donné.

  • La méthode ResetFormattingState permet à un adaptateur de réinitialiser l'état de mise en forme à l'état par défaut.

Méthodes de rendu adaptatif

La classe WmlMobileTextWriter fournit un certain nombre de méthodes de haut niveau pour le rendu, comme illustré dans le tableau suivant.

Les adaptateurs WML doivent utiliser ces méthodes pour afficher le contenu, car le writer peut automatiquement optimiser la sortie selon les fonctionnalités du périphérique cible.

Pour plus d'informations sur chacune de ces méthodes, consultez la documentation de la classe WmlMobileTextWriter.

Méthode de writer

Description

RenderText

Affiche un élément de type texte.

RenderImage

Affiche un élément de type image.

RenderTextBox

Affiche un élément de type zone de saisie de texte.

RenderEndHyperlink

Affiche un élément de type lien hypertexte.

Appelez la méthode RenderText ou RenderImage pour afficher du texte ou une image à l'intérieur du lien hypertexte.

RenderBeginPostBack

RenderEndPostBack

Affiche un élément de type publication.

Appelez la méthode RenderText ou RenderImage pour afficher du texte ou une image à l'intérieur de la publication.

RenderBeginSelect

RenderEndSelect

RenderSelectOption

Affiche un élément de type liste de sélection.

Appelle la méthode RenderSelectOption pour afficher chaque option dans la liste de sélection.

AddFormVariable

Ajoute une variable et une valeur initiale à afficher avec le formulaire. Lorsqu'un périphérique WML affiche le formulaire, il initialise la variable à la valeur initiale spécifiée.

De plus, la classe de base WmlControlAdapter fournit un certain nombre de méthodes de niveau supérieur, comme illustré dans le tableau suivant. Chacune de ces méthodes effectue le rendu à l'aide des méthodes de writer précédemment répertoriées.

Méthode d'adaptateur

Description

RenderBeginLink

RenderEndLink

Affiche un lien. L'adaptateur détermine automatiquement le rendu du lien, en affichant les liens vers les formulaires de la même page comme des publications et en affichant les autres comme des liens hypertexte.

Appelez la méthode RenderText ou RenderImage sur le writer pour afficher du texte ou une image à l'intérieur du lien.

RenderLink

Affiche un lien avec du texte.

RenderPostBackEvent

Affiche un événement de publication avec le contrôle en tant que cible.

Rendu des menus

Sur certains périphériques WML, un formulaire constitué de plusieurs liens ou ancres est mieux rendu sous forme de menu d'éléments, grâce à l'utilisation des éléments <select> et <option>, avec une interface utilisateur de navigation par clavier généré automatiquement. Un navigateur UP.Browser d'Openwave est un exemple de ce type de périphérique.

L'adaptateur de formulaire WML peut afficher un formulaire sous forme de menu si le formulaire est constitué d'aucun ou de plusieurs contrôles dont la restitution est du texte statique, suivis d'un ou de plusieurs contrôles qui peuvent restituer les éléments <select> et <option>.

Si la propriété RendersWmlSelectsAsMenuCards de la classe MobileCapabilities a la valeur true, le périphérique peut restituer les éléments <select> comme des cartes de menu plutôt que comme une zone de liste déroulante.

La propriété CanCombineFormsInDeck a la valeur true si le navigateur peut gérer des paquets de carte qui contiennent plusieurs formulaires comme des cartes séparées. L'adaptateur peut sortir plusieurs formulaires de la même page comme des cartes d'un paquet unique.

Contrôles de rendu des acceptations de formulaire

Lorsqu'un formulaire affiché inclut une interface utilisateur permettant d'envoyer le formulaire au serveur, certains périphériques WML exigent que l'interface utilisateur pour le périphérique spécifié soit un élément <do> au début du formulaire. Un navigateur UP.Browser d'Openwave est un exemple de ce type de périphérique.

Lorsqu'un périphérique exige que l'interface utilisateur utilise un élément <do>, l'adaptateur de formulaire vérifie si l'un des contrôles du formulaire requiert ou non l'interface utilisateur d'envoi et si l'un d'entre eux fournit cette interface. Pour déterminer cela, l'adaptateur de formulaire interroge les adaptateurs de chacun des contrôles sur le formulaire.

Rendu pour les softkeys

Certains contrôles affichent une interface utilisateur qui peut être mappée à une softkey sur un périphérique WML. La propriété RendersWmlDoAcceptsInline de la classe MobileCapabilities a la valeur true si le périphérique affiche un élément <do> WML comme bouton inline plutôt que comme softkey.

Interface utilisateur secondaire

L'ensemble d'adaptateurs WML prend en charge l'interface utilisateur secondaire qui est utilisée par les contrôles pour afficher les écrans supplémentaires de l'interface utilisateur. Pour utiliser l'interface utilisateur secondaire, un adaptateur de contrôle exécute les étapes suivantes :

  1. En réponse à une intervention de l'utilisateur (généralement dans la méthode HandlePostBackEvent substituable), l'adaptateur de contrôle spécifie le mode interface utilisateur secondaire, en définissant la propriété SecondaryUIMode de la classe de base WmlControlAdapter.

  2. Lors du rendu, le contrôle vérifie s'il se trouve en mode interface utilisateur secondaire et, si tel est le cas, affiche l'interface utilisateur secondaire appropriée.

  3. En réponse à l'intervention de l'utilisateur à partir de l'interface utilisateur secondaire, l'adaptateur de contrôle peut remplacer le mode interface utilisateur secondaire par une autre valeur ; sinon, il peut quitter le mode interface utilisateur secondaire en appelant la méthode ExitSecondaryUIMode de la classe de base WmlControlAdapter.

Fonctionnalités supplémentaires

Les périphériques WML exposent des fonctionnalités supplémentaires qui peuvent être utilisées pour modifier le rendu. Ces fonctionnalités sont accessibles par l'intermédiaire de la méthode HasCapability de la classe MobileCapabilities.

Voir aussi

Concepts

Fonctionnalité des ensembles d'adaptateurs

Référence

Tableau des fonctionnalités de périphérique