2012-08-31 17 views
9

Klient poprosił o dodanie przycisku drukowania do swojej witryny i chciałby, aby był ukryty dla użytkowników, którzy nie mają możliwości drukowania, np. większość urządzeń mobilnych.Wykryj, czy użytkownik ma możliwości drukowania?

Czy istnieje jakakolwiek droga przez JavaScript, aby wykryć, czy klient ma możliwości drukowania?

+10

Jednym słowem, nie. Przeglądarka nie dowiaduje się nic o podłączonych urządzeniach.Z pewnością możesz powiedzieć, czy klient jest mobilny i ukryć przycisk dla urządzeń mobilnych, ale nie możesz nic powiedzieć o drukarkach obecności. – meagar

+2

Czy jest to publiczna strona internetowa (w takim przypadku jest to niemożliwe) lub prywatna strona intranetowa? Jeśli jest to witryna intranetowa, czy możesz wymagać określonej przeglądarki i możesz zainstalować wtyczki, np. ActiveX? –

+1

... i świadomość, że urządzenie jest "mobilne" jest również bardzo trudna, ponieważ liczba gatunków urządzeń w środowisku naturalnym rośnie tak szybko ostatnio. – Pointy

Odpowiedz

0

Jeśli wyrażenie regularne WURFL jest zbyt wolne dla Twojej aplikacji lub używasz lakieru, kalmarów lub czegokolwiek, co nie pozwala na użycie WURFL, możesz po prostu spróbować przeanalizować ciąg agenta użytkownika za pomocą JS (navigator) .userAgent) i dowiedzieć się czegoś takiego jak "iOS wersja 4+", ponieważ przynajmniej te urządzenia mają możliwości drukowania (o ile są w zasięgu sieci z drukarką sieciową). Jest to proste rozwiązanie (ale nigdy nie obejmie wszystkich urządzeń z systemem iOS, ponieważ ma zbyt wiele różnych ciągów agenta użytkownika).

można znaleźć mnóstwo przykładów ciągów agenta użytkownika tutaj: http://deviceatlas.com/

1

Wymóg jest błędna, ponieważ większość klienckie mogą „print”, a wiedza o tym, czy aplikacja kliencka może drukować nie jest na stronach internetowych busines.

Wiele przeglądarek mobilnych może drukować, a większość przeglądarek internetowych może drukować, nawet jeśli nie ma podłączonej drukarki (drukowanie w formacie PDF, druk w chmurze itp.). Jest to pewien problem związany z bezpieczeństwem, aby dowolny agent użytkownika wyraźnie informował o swoich możliwościach drukowania bez wiedzy użytkownika. Właśnie do tego służy arkusz stylów drukowania (aby strona internetowa nie musiała wiedzieć, czy jest drukowana w ogóle).

Co można zrobić, to ukryć przycisk na agentach użytkownika z małymi ekranami, użytkownicy mogą nadal drukować swoje dokumenty za pomocą samego agenta użytkownika. Można również wykryć określone programy klienckie i ukryć dla nich przycisk.

Linki

http://www.alistapart.com/articles/return-of-the-mobile-stylesheet: omawia mobilnych stylów i zagadnień pokrewnych.

http://mobile.smashingmagazine.com/2010/11/03/how-to-build-a-mobile-website/#mobile-stylesheets: więcej o mobilnych arkuszach stylów.

podstawowe mocujący komórkowego stylów:

<link rel="stylesheet" href="mobile.css" media="handheld" />

Wykrywanie według rozmiarów ekranu:

<link rel="stylesheet" href="mobile.css" media="only screen and (max-device width:480px)"/>

-1

para wyjaśnień. WURFL nie używa Regexów, a przynajmniej nie w taki sposób, jaki wydaje się sugerować komentarz. RegExps mogą być zaangażowane w niektóre UA, które są szczególnie trudne do analizy, ale dzieje się tak tylko raz dla każdej UA, po tym jak mecz zostanie zbuforowany.

Ponadto, ScientiaMobile ogłosiła ostatnio dostępność modułu WURFL dla Varnish Cache, Apache i NGINX, więc użycie WURFL na poziomie "sieci" jest teraz możliwe.

Ta strona zawiera więcej szczegółów: http://www.scientiamobile.com/blog/post/view/id/25/title/HTTP-and-Mobile%3A-The-Missing-Header-

wreszcie zastrzeżenie: Znam te rzeczy, bo jestem twórcą WURFL i ScientiaMobile CTO.

+1

To nie jest tak naprawdę odpowiedź na pytanie; Myślę, że chciałeś dodać to jako komentarz do odpowiedzi, która wspomina WURFL. – millimoose

Powiązane problemy