2014-01-31 53 views
0

我不知道是否有可能檢測到一種運行JS應用程序的設備。
我的意思是? - 我想提供觸摸顯示器(可以用作普通的觸摸設備,也可以連接鼠標 - 因此它們可以像普通PC一樣運行)和經典的觸摸設備(例如手機 - 不可能使用鼠標) 。檢測與鼠標連接的觸摸顯示器

可能嗎?我知道如何檢測觸摸設備:

var isTouch = !!("ontouchstart" in window || navigator.msMaxTouchPoints); 

但如何檢測到有觸摸顯示器或至少它有一個鼠標連接?

+0

這是不可能的,恐怕。 JS不知道連接了什麼樣的硬件。 – Cerbrus

+0

該死的,我害怕這個:S也許some1知道這個問題的解決方法:/ – Nickon

+1

我能找到的唯一東西是檢查觸摸事件的東西。就像我說的那樣,JavaScript沒有硬件訪問權限。 – Cerbrus

回答

1

那麼,你已經有一個bool反射觸摸功能。獲得相同的鼠標是可行的,雖然不完全優雅。你可以做這樣的事情:

var hasMouse; 
window.addEventListener('mousemove', function mouseCheck(e) { 
    window.removeEventListener('mousemove', mouseCheck); 
    hasMouse = true; 
}); 

結合用戶代理檢查,你可以得到一個體面的估計的用戶設備。自然,一些移動瀏覽器允許欺騙非移動用戶代理以進行「桌面」查看。我不太喜歡在不確定設備功能的情況下強制使用接口格式的想法。如何簡單地在應用程序啓動時顯示模式,並使用hasMouse以及用戶代理信息來指示「推薦」佈局?