如何用 JavaScript 檢測移動裝置?
在本教程中,我們將學習如何使用 JavaScript 檢測我們正在使用的移動裝置。
方法一:使用 navigator.userAgent 屬性
為了用 JavaScript 檢測移動裝置,我們將使用 window navigator 物件,該物件包含有關瀏覽器的所有資訊。我們將用來檢測移動裝置的屬性是 userAgent 屬性,該屬性用於返回瀏覽器傳送到伺服器的使用者代理標頭。從此屬性接收到的值是瀏覽器名稱、版本和平臺,即,您可以使用此函式獲取有關移動裝置的所有資訊。
語法
使用 JavaScript 檢測移動裝置的語法如下:
window.navigator.userAgent ; or navigator.userAgent ;
步驟
使用 JavaScript 檢測移動裝置的步驟如下:
建立一個按鈕並將其連結到名為 myfunction 的函式。
現在在函式中,我們將建立一個 if 迴圈。
在 if 迴圈內,我們將使用 navigator.userAgent 屬性編寫一些條件來檢測任何移動裝置。
我們編寫的條件將查詢每種型別的移動裝置的匹配項,例如 Android、webOS、iPad、iPhone、iPod、BlackBerry 和 Windows Phone。
檢查所有條件後,如果找到任何移動裝置,則返回 true。
如果未找到任何移動裝置,則我們將使用 else 迴圈在 'a' 變數中獲取 false。
最後,將 a 的值列印到 answer 變數中,該變數連結到 id 為 result 的段落標籤,以便在螢幕上列印 true 或 false 值
示例
我們可以使用以下 HTML 程式碼來使用 JavaScript 檢測移動裝置:
<!DOCTYPE html> <html> <head> </head> <body style="text-align:center;"> <button id="browse" onclick="myfunction()"> Check</button> <p id="result"> </p> <script> var a; var answer = document.getElementById("result"); function myfunction() { if (navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i)) { a = true ; } else { a = false ; } answer.innerHTML = a; } </script> </body> </html>
注意 − 要使上述程式碼的輸出為“true”,您需要使用 Chrome 開發者工具執行程式碼,並選擇手機選項。當您進入開發者工具的移動區域時,您可以從那裡提供的移動裝置列表中選擇任何手機作為模擬器,以使用上述程式碼檢測手機的存在。
執行程式碼後,視窗上將出現一個名為“檢查”的按鈕,單擊該按鈕可以檢測手機。如果程式碼在任何移動裝置上執行,則輸出將為 true,否則將為 false。
方法二
但是,這種 user-agent 方法不是使用 JavaScript 檢測移動裝置的最佳方法,因為 user-agent 字串很容易被偽造。因此,我們還可以使用 window.orientation 方法 來使用 JavaScript 檢測移動裝置,此方法檢查裝置視口的方位。它以度數提供某些值,例如 -90、0、90、180,所有這些值都表示不同的視口。如果視口的值大於 0,則表示該裝置是移動裝置,否則它不是行動電話。
注意 − 此功能已棄用,不再推薦
使用 JavaScript 檢測移動裝置的步驟如下:
建立一個按鈕並將其連結到名為“myfunction”的函式。
現在在 script 標籤內,我們將定義該函式。
建立一個名為 answer 的變數,並在其中使用 window.orientation 方法來檢查方位值是否大於 -1。
在下一行,我們將呼叫 alert 方法,如果 answer 變數的值為 true,則該方法將列印值為“這是一部手機”。
否則,該值將顯示為“這不是一部手機”。
示例
我們可以使用以下 HTML 程式碼來使用 JavaScript 檢測移動裝置:
<!DOCTYPE html> <html> <head> </head> <body style="text align:center;"> <button id="browse" onclick="myfunction()">Check</button> <script> function myfunction() { var answer = window.orientation > 1; alert(answer ? 'It is a mobile device' : 'It is not a mobile device'); } </script> </body> </html>
注意 − 要檢查此程式碼的輸出,我們需要使用與上述程式碼中使用的相同的 Chrome 開發者工具。
如果程式碼在模擬器手機上執行,我們將收到“這是一部手機”的警報;否則,我們將得到“這不是一部手機”的輸出。