Ressources cible MobileFirst®

Vous pouvez modifier le mode de présentation d'une page pour n'importe quel appareil à l'aide d'une conception Web réactive. Les classes d'appareil sont des regroupements génériques de facteurs de formulaire permettant aux appareils client d'afficher des pages Web pour chaque facteur de formulaire sans avoir à concevoir la page pour chaque appareil.

Lorsqu'un client communique avec le serveur, il peut être profilé dans une ou plusieurs des classes d'appareil générique. Le client peut alors recevoir uniquement les ressources dont il a besoin pour le rendu de son facteur de formulaire. Si vous utilisez des classes d'appareil, vous pouvez également utiliser régulièrement des équations logiques de classe d'appareil qui sont des équations booléennes de classes d'appareil. Les équations logiques de classe d'appareil permettent de cibler précisément les ressources à télécharger.

Avec le thème par défaut, la conception réactive associée aux classes d'appareil et à la logique contribue à limiter le nombre de ressources téléchargées par les appareils. Par exemple, lorsque vous utilisez la navigation entre appareils, les modules de thème fournissent un JSP de navigation différent pour le rendu et des feuilles de style distinctes pour les différents types d'appareil. Le bureau s'adapte par défaut. Lorsqu'une tablette ou un smartphone est détecté, il bascule sur la page JSP de navigation mobile. Avec une classe d'appareil tablet, la page JSP de navigation mobile présente un volet de navigation latérale. Si un smartphone est détecté avec la classe d'appareil smartphone, la navigation est rendue sous forme de liste. Les classes d'appareil modifient également les conteneurs afin d'adapter le contenu à la taille de l'écran. Certaines fonctions, telles que le mode d'édition, peuvent être désactivées.

La principale utilisation des classes d'appareil s'effectue par module, lesquels peuvent les utiliser pour indiquer quand une ressource de sous-contribution est utilisée. Les zones de contenu dynamique peuvent également cibler une classe d'appareil avec une adresse URL MVC. Pour plus d'informations, voir le schéma mvc:URI. La classe d'appareil est disponible comme attribut sur les profils Fonctions/Préférences composites et peut être extraite dans un JSP. Vous pouvez également utiliser des équations d'unité qui sont des classes d'appareil avec une logique booléenne permettant de mieux contrôler quels appareils reçoivent des ensembles de ressources particuliers. Pour plus d'informations, voir Equations de classe d'appareil. L'objet de configuration comporte une variable globale qui permet de cibler le code dans l'éditeur JavaScript. Pour plus d'informations, voir Informations supplémentaires sur les classes d'unités pour les développeurs.

Dans certains cas vous ne pouvez pas utiliser des classes d'appareil avec des équations logiques de classe d'unité. Elles ne peuvent pas être utilisées pour déterminer des modèles de présentation, filtrer des pages avec la balise supported-deviceclass et effectuer la personnalisation. La personnalisation ne peut pas utiliser une logique d'équation d'unité directement comme cela est défini par la logique booléenne. Mais elle peut créer ses propres règles de ciblage de logique booléenne avec l'éditeur de règles de visibilité. Pour plus d'informations, voir Classes d'appareils.

Une variable JavaScript globale est fournie pour permettre à l'utilisateur d'effectuer une personnalisation plus poussée.  La variable globale com_ibm_device_class fournit un tableau contenant la liste de toutes les classes d'appareil définies. Si aucune n'est définie, le tableau affiché est vide. Par exemple, si vous disposez d'un code JavaScript propre au traitement des smartphones, vous pouvez inclure le code suivant.

if (com_ibm_device_class.indexOf("smartphone") !== -1) {
//process smartphone
}

Si vous voulez cibler plus précisément un appareil iOS exécuté dans un conteneur MobileFirst®, vous pouvez inclure le code suivant.

if (com_ibm_device_class.indexOf("ios") !== -1 && com_ibm_device_class.indexOf("worklight") !== -1 ) {
//process ios worklight
}