回答
如果WURFL正則表達式對於您的應用程序太慢,或者您正在使用清漆,魷魚或其他任何不允許您使用WURFL的東西,那麼您可以嘗試使用JS(導航器)來分析用戶代理字符串.userAgent),並找出類似「iOS版本4+」的東西,至少這些設備具有打印功能(只要它們可以通過網絡打印機到達網絡)。這是一個簡單的解決方案(但不會覆蓋所有iOS設備,因爲它們有太多不同的用戶代理字符串)。
你可以找到大量的用戶代理字符串的例子在這裏: http://deviceatlas.com/
要求是有缺陷的,因爲大多數用戶代理可以「打印」和的UA是否能夠打印知識不是網站業務內容。
很多移動瀏覽器可以打印和大多數Web瀏覽器可以打印,即使沒有連接的打印機(打印到PDF,雲打印等)。對於任何用戶代理而言,在用戶不知情的情況下明確聲明其打印功能的任何內容都是一個安全問題。這就是打印樣式表所在的位置(因此網站不必知道它是否被打印)。
你可以做的是隱藏在小屏幕的用戶代理的按鈕,這些用戶可以使用用戶代理本身仍然打印他們的文檔。您還可以檢測特定的用戶代理並隱藏它們的按鈕。
鏈接
http://www.alistapart.com/articles/return-of-the-mobile-stylesheet:討論移動樣式表和相關的問題。
http://mobile.smashingmagazine.com/2010/11/03/how-to-build-a-mobile-website/#mobile-stylesheets:更多關於手機的樣式表。
基本移動樣式表附件:
<link rel="stylesheet" href="mobile.css" media="handheld" />
檢測由屏幕尺寸:
<link rel="stylesheet" href="mobile.css" media="only screen and (max-device width:480px)"/>
夫婦澄清。 WURFL不使用RegExps,或者至少不以評論似乎暗示的方式使用RegExps。對於某些特別難分析的UA,RegExps可能會涉及到,但對於每個UA,這隻會發生一次,然後匹配被緩存。
此外,ScientiaMobile最近宣佈WURFL模塊光油緩存,Apache和Nginx的可用性,所以使用WURFL在「網絡」級別現在是可能的。
這個頁面有更多的細節:http://www.scientiamobile.com/blog/post/view/id/25/title/HTTP-and-Mobile%3A-The-Missing-Header-
最後一個聲明:我知道這些事情,因爲我是WURFL的創建者和ScientiaMobile的CTO。
這不是真正的答案,我想你的意思是把這個添加爲對提及WURFL的答案的評論。 – millimoose
- 1. 是否打印功能具有在python
- 2. 如何檢測用戶是否具有ActiveX過濾功能?
- 3. 如何檢查用戶是否具有WordPress的'manage_options'功能?
- 4. 是否有可能檢測到用戶(Android)打開屏幕?
- 5. 檢測PrintDocument是否成功打印(不僅僅是預覽)
- 6. 檢測super()是否具有裝飾器的功能?
- 7. 檢測用戶是否通過javascript打印了某些內容
- 8. 有沒有辦法檢查打印過程是否成功?
- 9. 是否有可能通過預測鍵盤檢測用戶何時打字?
- 10. 是否有適用於Chrome打印功能的API
- 11. 功能檢測是否需要用戶手勢
- 12. 是否有任何工具可以檢測不再使用的代碼/功能?
- 13. Adobe Premiere是否具有照片質量彩色打印功能?
- 14. Elm是否具有可以將控件打印到對象的調試功能?
- 15. 檢測圖像是否有水印?
- 16. 檢測圖庫是否在Windows功能區框架中打開
- 17. WordPress的:檢查登錄的用戶是否具有文章編輯功能
- 18. 打印所有功能 - cakephp
- 19. 確定用戶是否具有各種高級功能
- 20. QPrinter是否有功能在頁面上寫入打印源
- 21. 是否有任何單一功能的打印iterables值
- 22. 可能檢測用戶是否有多個選項卡打開您的站點?
- 23. 是否有可能檢測用戶何時在Facebook上打開聊天窗口?
- 24. 檢測數據幀是否具有MultiIndex
- 25. 檢測功能是否爲瀏覽器本地功能
- 26. 是否有可能檢測到Java中是否有類可用?
- 27. 需要具有打印屏幕能力的winapi功能
- 28. 現有功能的組合是否具有新功能?
- 29. 檢測是否有對話框打開
- 30. Netezza是否具有ODBC DESCRIBE功能?
總之,沒有。瀏覽器並不瞭解任何有關連接的設備。您當然可以知道客戶端是否是移動設備,並且隱藏了移動設備的按鈕,但您無法分辨存在打印機的任何信息。 – meagar
這是爲公共互聯網網站(在這種情況下是不可能的)或私人內部網站點?如果是用於Intranet站點,您是否需要特定的瀏覽器,並且可以安裝插件的ActiveX? –
...並且知道設備是「移動的」也非常困難,因爲近來野外設備種類的數量增長如此之快。 – Pointy