2013-06-27 63 views
4

我知道,有很多方法來檢測手機用戶(主要是通過檢查用戶代理)。僅檢測移動用戶提供「桌面模式」瀏覽器

但是很多移動瀏覽器有所謂的「桌面模式」,爲網站提供多一點的功能環境。

是否有提供在該模式下的特定功能(例如一個jQuery滑塊)只向這些移動用戶,瀏覽的方式嗎?我遇到的真正問題是,基本上,他們的用戶代理在兩種模式下都是相同的(例如「Opera Mini 9.0.1」),所以從站長的角度來看 - 我怎麼知道他們在移動設備上,但是在桌面模式下瀏覽網站?

+3

「桌面模式」的重點在於防止移動特定的內容。你甚至不應該試圖改變這個 – Novocaine

+1

我意識到這一點,但是對這種情況進行成像:你的站點檢測到(通過檢查用戶代理)用戶是否通過其中一個被識別的移動設備進行訪問。由於您知道您網站上的某項特定功能在移動瀏覽器上無法使用(因爲它具有懸停效果或類似效果),因此您將此功能全部隱藏起來。但是,該功能適用​​於移動設備,使用「桌面模式」。我們是否將其隱藏在這些設備上或嘗試檢測此模式並顯示該功能?這是我的困境。 –

+3

或者一個特定的移動瀏覽器充滿了你必須解決的錯誤。無論是假裝成桌面版本(沒有錯誤),這些錯誤都是存在的。 +1的問題。 – RichieHindle

回答

2

在Android瀏覽器,「桌面模式」將刪除用戶代理的「機器人」的字符串。如果你可以使用JavaScript,下面的檢測Android的Google Chrome的桌面模式:

var webkitVer = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.appVersion)[1], 10); // also matches AppleWebKit 
var isGoogle = webkitVer && navigator.vendor.indexOf('Google') === 0; // Also true for Opera Mobile and maybe others 
var isAndroid = isGoogle && userAgent.indexOf('Android'); // Careful - Firefox and Windows Mobile also have Android in user agent 
var androidDesktopMode = !isAndroid && isGoogle && navigator.platform.indexOf('Linux ') === 0 && !(window.chrome || window.chrome.webstore) && 'ontouchstart' in document.documentElement; 

這應該平時工作,雖然可能將某些瀏覽器失敗(AOSP閃爍基於移動瀏覽器?)。

對於Windows Mobile,您可以通過檢查字符串檢測桌面模式「WPDesktop;」在用戶代理中。