9
votes

Détecter si l'utilisateur a des capacités d'impression?

Un client a demandé un bouton d'impression être ajouté à leur site et aimerait qu'il soit masqué pour les utilisateurs qui n'ont pas la capacité d'imprimer, par ex. la plupart des appareils mobiles.

Y a-t-il un moyen via JavaScript pour détecter si un client a des capacités d'impression?


9 commentaires

En un mot, non. Le navigateur ne fait rien savoir sur les appareils ci-joints. Vous pouvez certainement dire si le client est mobile et masque le bouton pour les appareils mobiles, mais vous ne pouvez rien dire sur les imprimantes de présence.


Est-ce pour un site Internet public (auquel cas il est impossible) ou pour un site intranet privé? Si c'est pour un site intranet, pouvez-vous avoir besoin d'un navigateur spécifique et pouvez-vous installer des plugins, par exemple. ActiveX?


... et sachant qu'un périphérique est "mobile" est assez difficile aussi, car le nombre d'espèces de périphériques dans la nature augmente si vite ces derniers temps.


@RB ActiveX n'est probablement pas super utile pour la plupart des appareils mobiles ...


Et, un certain nombre d'appareils mobiles peuvent Imprimer, en particulier l'impression à un fichier!


Pour suivre le commentaire de RB, vous pouvez potentiellement essayer de demander quelque chose à partir de l'IP des imprimantes et de voir quelle est la réponse, folle cependant.


Malheureusement, c'est un site public, je suppose que cela ne serait pas possible mais pensais que je vérifierais vérifier la pile


Ouais, vous pouvez détecter beaucoup d'appareils mobiles à l'aide de Wurfl comme décrit ici ici Stackoverflow.com/a/3632172/1354137 , mais ça ressemble à votre seule option.


"E.G. La plupart des appareils mobiles". Umm ... airprint? La plupart des appareils mobiles peuvent imprimer. C'est une mauvaise idée.


3 Réponses :


0
votes

Si la Wurfl Regex est trop lente pour votre application ou que vous utilisez du vernis, un calmar ou toute autre chose qui ne vous permet pas d'utiliser Wurfl, vous pouvez simplement essayer d'analyser la chaîne d'agent utilisateur avec JS (navigateur. userAgent) et découvrez quelque chose comme "iOS version 4+" comme au moins ces périphériques ont des capacités d'impression (tant qu'ils sont à la portée d'un réseau avec une imprimante réseau). C'est une solution simple (mais ne couvrira jamais tous les appareils iOS car ils ont trop de chaînes d'agent utilisateur différentes).

Vous pouvez trouver de nombreux exemples pour les chaînes d'agent utilisateur ici: http://devicatlas.com/


0 commentaires

1
votes

L'exigence est défectueuse car la plupart des agents utilisateur peuvent "imprimer" et la connaissance de savoir si une UA peut imprimer ou non les sites Web Busines.

De nombreux navigateurs mobiles peuvent imprimer et la plupart des navigateurs Web peuvent être imprimés même s'il n'y a pas d'imprimante attachée (imprimée sur PDF, imprimée en nuage, etc.). Il s'agit d'un problème de sécurité pour tout agent utilisateur d'indiquer explicitement quelque chose sur ses capacités d'impression sans la connaissance de l'utilisateur. C'est ce que la feuille de style d'impression est là pour (donc le site Web n'a pas à savoir s'il est imprimé du tout).

Ce que vous pouvez faire est de masquer le bouton sur les agents utilisateur avec de petits écrans, ces utilisateurs peuvent toujours imprimer leurs documents à l'aide de l'agent utilisateur lui-même. Vous pouvez également détecter des agents utilisateur spécifiques et cacher le bouton pour eux.

liens

http://www.alistaPart.com/articles/return- de-the-Mobile-stylesheet : traite des feuilles de style mobile et des problèmes connexes.

http: / /mobile.smashingmagazine.com/2010/11/03/how-to-build-a-mobile-website/#mobile-StylesSheets : En savoir plus sur les feuilles de style mobile.

pièce jointe de base de la feuille de style mobile:

détecter par taille d'écran:


0 commentaires

-1
votes

Couple de clarifications. Wurfl n'utilise pas Regexps, ni du moins, pas dans la manière dont le commentaire semble impliquer. Regexps peut être impliqué pour certaines UA qui sont particulières difficiles à analyser, mais cela ne se produit qu'une fois pour chaque UA, après cela, le match est mis en cache.

De plus, Scientamobile a récemment annoncé la disponibilité d'un module WURFL pour le cache de vernis, Apache et NGinx, il est donc possible d'utiliser WURFL au niveau "Network".

Cette page a plus de détails: http://www.scientiqueiamobile.com/blog/post/view/id/25/title/http-and-mobile%3A-The-Missing-header-

Enfin un clause de non-responsabilité: Je connais ces choses parce que je suis le créateur Wurfl et le CTO de Scientamobile.


1 commentaires

Ce n'est pas vraiment une réponse à la question; Je pense que vous vouliez ajouter cela comme un commentaire sur la réponse qui mentionne Wurfl.