Je travaille sur une application web qui, entre autres, reçoit des commandes pour une entreprise. Il y a une page où les commandes sont répertoriées, et elle est actualisée à intervalles fixes afin que la liste affichée à l'écran soit à jour.
Cependant, il y aura de nombreux cas où l'utilisateur de cette application Web ne fera pas attention à la fenêtre du navigateur (cela pourrait être minimisé), peut-être parce que cette personne est occupée à traiter avec des collègues de travail, des choses qui se produisent dans l'entreprise ou à utiliser d'autres logiciel sur le même PC (peut-être 1 ou 2 autres applications, celles de bureau). Cet utilisateur peut utiliser un logiciel qui prend tout l'écran pour lui, et notre application Web doit attirer l'attention de l'utilisateur lorsque de nouvelles commandes arrivent, même lorsque toutes les situations décrites précédemment se produisent.
J'ai parlé avec des utilisateurs potentiels et ils m'ont dit que quelque chose comme la notification de mise à jour d'Avast serait idéal - c'est-à-dire une notification qui attire l'attention de l'utilisateur par des moyens visuels et auditifs, et qui est superposée à tout ce qui se trouve actuellement sur -écran.
Cependant, quelque chose comme la notification de mise à jour d'Avast n'est pas possible dans un environnement Web, à ma connaissance. L'idée que j'ai eue était la suivante, combinant 3 techniques:
window.focus();
).alert()
sera déclenchée, avec un court message indiquant que de nouvelles commandes sont arrivées et que l'utilisateur doit faire attention à/lire la liste des commandes entrantes dans la page.D'un point de vue technique, cette approche est confrontée à des problèmes concernant le comportement du navigateur et du système d'exploitation.
alert()
et/ou window.focus()
, Firefox ne faire autant que faire clignoter l'icône de sa barre des tâches.Maintenant, bien que la solution à ce problème doive être multi-navigateur et multi-système (ce qui est un problème technique et non une expérience utilisateur), cela fait partie du problème dans son ensemble, ce qui, je pense, est un utilisateur problème d'expérience: Comment attirer l'attention de l'utilisateur, quoi qu'il arrive. Les sons seuls ne suffiront pas; une entreprise peut être assez chaotique et les alertes sonores peuvent être ignorées. Un élément visuel qui reste à l'écran jusqu'à ce que l'utilisateur réagisse est essentiel.
Comment géreriez-vous ce scénario?
PS: Si vous me disiez que c'est un problème avec l'utilisateur lui-même qui ne fait pas attention au système utilisé, je serais d'accord dans une certaine mesure, mais il n'y a pas grand chose à faire avec l'utilisateur lui-même, donc l'application web doit essayer de coopérer à cet égard.
Ce que font Google Messenger et Facebook Chat, ce qui me pousse à me précipiter sur la page Web comme une sorte de zombie privé de chat , c'est qu'ils ont l'icône de la page Web flash dans ma barre des tâches. This Stack vous montre comment faire cette. Modifier: Notifications HTML5 sont plus attrayants que JS.
La raison pour laquelle cela attire mon attention (et est forte d'un point de vue UX) est que c'est une chose très étrange que peu de sites Web font. Une icône clignotante est très inhabituelle, donc à toutes fins réalistes, l'utilisateur sera amené à comprendre ce qui ne va pas avec sa page Web/icône/etc.
Outre la solution d'application susmentionnée, vous pouvez également utiliser une API commerciale pour envoyer un message texte à vos clients chaque fois qu'ils reçoivent une commande. Une solution gratuite et similaire serait de leur envoyer un e-mail chaque fois qu'ils reçoivent une commande.
La chose la plus importante est de ne pas noyer vos clients dans des mises à jour liquides. Je n'ai aucune idée de ce qu'est votre service, mais à moins qu'il n'envoie à vos clients des mises à jour si rarement que vos mises à jour ne sont pas ennuyeuses, ou que les "commandes" décrites via la mise à jour sont si incroyablement massifs qu'ils justifient instant notification (comme un hélicoptère Apache ou un yacht vendu), vous devez approcher avec prudence les motifs de le forçage limite l'attention de votre client.
Personne n'aime ceux qui sont égocentriques. La chose la plus importante est de rendre la mise à jour Push appropriée pour le produit final. Bien que oui, il est vrai que faire savoir à vos clients " Hé les gars! Vous avez vendu un autre T-shirt en gros à 1,50 $! Cela fait 3 960 d'entre eux aujourd'hui !! Cliquez-moi pour fermer cette notification " peut sembler une bonne idée sur le papier, en réalité, cela deviendrait très agaçant très rapidement.
Ce que vous demandez ici revient à demander:
J'ai deux chambres sur deux étages différents; Une seule chambre a un téléphone installé; Comment faire sonner le téléphone dans l'autre pièce.
En d'autres termes:
Une fonctionnalité d'application Web est limitée à la portée dans laquelle elle est implémentée (le navigateur). Vous n'avez aucun contrôle sur le système d'exploitation de l'utilisateur, ni sur sa machine.
D'un point de vue UX, ce n'est pas un problème d'application Web, pas même une application de bureau, c'est un problème de système d'exploitation.
Si l'appareil utilisé est un ordinateur personnel et que votre analyse de contexte implique clairement que les utilisateurs utilisent des applications en dehors de la fenêtre du navigateur, votre système doit vraiment être considéré au niveau du système d'exploitation plutôt qu'au niveau du navigateur.
Pour répondre directement à votre question: ceci n'est pas réalisable depuis une application web. Vous devez rechercher des solutions de niveau inférieur, telles qu'un message texte ou une application de notification sur la machine hôte.
Quelle que soit la solution choisie, la seule façon dont je peux vous voir attirer l'attention de l'utilisateur peu importe quoi est si chaque fois qu'une nouvelle commande arrive, vous mettez le feu à l'utilisateur de sorte que l'utilisateur doit prendre des mesures pour éteindre le feu. Il n'y a pas de solution pratique aux problèmes "peu importe quoi".
Une solution possible consiste à créer une petite application de notification que vous devez installer/authentifier (comme Dropbox ou Evernote, etc.). Dans ce cas, vous pouvez surmonter toutes les limitations des applications Web. Besoin de travail supplémentaire cependant.
Bien qu'il en soit encore à ses balbutiements et qu'il ne soit pas pris en charge sur tous les navigateurs, une combinaison de notifications et de sons de bureau HTML5 pourrait y parvenir dans certains navigateurs.
Eh bien, une application de notification au niveau du système d'exploitation pourrait être une bonne solution, mais malheureusement, elle ne fait pas partie de la portée/du budget actuel du projet. En outre, nous devons faire quelque chose qui est multiplateforme, ou s'en tenir à "Windows uniquement".
Il existe un logiciel gratuit/libre et multiplateforme qui pourrait faire le travail. L'obligation d'installer un logiciel ne fonctionne pas dans tous les cas, bien sûr, mais dans ce cas, il semble que vous ayez un certain contrôle sur les utilisateurs (c'est-à-dire que vous pouvez leur dire d'installer quelque chose).
Alors pourquoi ne pas utiliser XMPP ? Envoyez une notification pour chaque commande.
Il y a free/libre clients pour chaque système (desktop, mobile, même pour les pages web). Et les utilisateurs (resp. Les entreprises) ont un contrôle total sur comment ils veulent être informés (pop-up, son,…).
Je pense qu'il est important que tous les canaux de communication disponibles n'attirent pas l'attention des utilisateurs en même temps, sinon cela deviendra vraiment ennuyeux (page Web clignotante, vibration du smartphone, alertes sonores).
Grâce au système d'informations de priorité et de présence (généralement intégré), il est facile d'envoyer toujours la notification à l'endroit où l'utilisateur est actuellement actif (les serveurs XMPP le gèrent automatiquement):
Définissez un son personnalisé pour la notification mobile, afin que les utilisateurs ne pensent pas que ce soit une notification SMS/Mail/de réseau social sans importance/etc. ( pour une réaction immédiate, même sur les toilettes! ).
Je suppose que le système saura quand un utilisateur a réagi à une notification, il peut donc être automatiquement déterminé si la notification a réussi. Si le système ne peut pas le déterminer, vous devez demander aux utilisateurs de confirmer manuellement chaque notification (par exemple en la cochant sur la page Web) resp. les clients à le faire automatiquement dès que les utilisateurs ont ouvert un nouveau message, selon l'endroit où la notification a été envoyée.
Si la notification est vraiment importante, jetez un œil aux extensions XMPP suivantes:
XEP-0224: Attention : attirer l'attention d'un utilisateur (a Nudge ):
Même si un client peut être disponible (comme indiqué dans la strophe de présence la plus récente), l'utilisateur auquel appartient ce client n'est peut-être pas concentré sur le client actuellement. Présence obtenue par excitation kinesthésique (POKE) définit une méthode pour un test physique de la présence des utilisateurs. Étant donné que cela nécessite un matériel spécial qui ne peut pas être supposé être disponible, ce XEP définit une implémentation uniquement logicielle où aucun retour direct n'est attendu. Cette fonctionnalité est connue sous le nom de "Nudge" ou "buzz" dans certains protocoles de messagerie instantanée non XMPP.
XEP-0132: Présence obtenue via l'excitation kinesthésique (POKE) : vérifiez si un utilisateur est physiquement présent (nécessite du matériel supplémentaire, bien sûr):
XMPP Core et XMPP IM définissent des méthodes pour échanger des informations sur le réseau d'une personne disponibilité via XML
<presence/>
strophe. En général, ces informations de présence sont générées uniquement lorsqu'une personne initie une interaction avec un client, bien qu'elles puissent être générées par programme via des fonctionnalités telles que la fonction d'absence automatique. Cependant, parfois un utilisateur est présent à proximité d'un client mais n'est pas activement engagé avec l'interface client. Dans de telles circonstances, il serait utile d'avoir un mécanisme qui est parfois appelé<presence type='probe-irl'/>
: la possibilité d'invoquer un moyen réel de déterminer la présence physique de l'utilisateur. Ce document définit exactement un tel mécanisme.