2012-12-10 68 views
2

是否有任何使用功能檢測來檢測iOS6設備的通用方法?如何使用功能檢測來檢測iOS6設備

+0

所有「高」設備(目前的iPhone 5和第五代觸摸)都有iOS6,但這當然只是一個(仍然很小)的一部分。根據iOS版本,你打算做什麼不同?也許有另一種方法來檢測相關的信息呢? – Thilo

+0

你可能可以從'navigator.userAgent'得到它 –

+0

我只是想檢測iOS6,我覺得功能檢測會比使用userAgent更好。 – Exception

回答

2

我認爲最好的方法是始終使用parse the user agent string,但是您可以使用以前不支持的功能(請參閱this article獲取更完整的列表,我將僅舉一例)檢測iOS 6引入的Safari版本。

基本上你模仿的modernizr使用相同的技術,這片的代碼,如果<input>file支持你檢查一下,如果是那麼你在Safari上運行的iOS 6或更高。當然,只是使用功能,你不能確定用戶沒有使用其他瀏覽器(這就是爲什麼我更喜歡用戶代理字符串,如果你必須檢測操作系統版本)。比較見this post here on SO

function isNewVersion() { 
    var elem = document.createElement("input"); 
    elem.setAttribute("type", "file"); 

    return elem.type !== "text"; 
} 
2

您可以檢查FileReader API,但是這當然會匹配許多現代的桌面瀏覽器,太(我不知道這是怎麼回事給你帶來一些問題,但我對此表示懷疑):

var iOS6 = false; 
if(window.FileReader) 
{ 
    iOS6 = true; 
} 
+0

這似乎比創建一個元素並檢查其屬性更好。它可以簡單地寫成'iOS6 = !! window.FileReader;' – Jake

+0

這是最初的想法:) – BenM