window.navigator.userAgent

實務上有判別造訪網頁是哪家OS的需求,可以用這支API來判定, Chrome 打開 devTool 在console 輸入 :

1
window.navigator.userAgent

在我的windows電腦上的結果是:

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

裡面紀錄了很多東西,甚至連瀏覽器版本都有寫,由此我們只要對字串作 .match() 或寫個 RegExp 去 .test() 這個字串就能判別。

那行動裝置OS長怎樣?

其實 Chrome devTool 很強大,在開啟時點選左上角 toggle device toolbar 按鈕,就會出現各裝置螢幕的模擬畫面,選單提供常用的裝置,起初以為只有單純模擬螢幕解析度,試了一下發現連 OS 資訊都模擬了…

如果我選擇 iphone 6 ,那麼 window.navigator.userAgent 結果就是:
"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"

iPad:
"Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"

Android (Nexus 6P):
"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Mobile Safari/537.36"

照著顯示的字串,我們只要過濾 OS 、裝置名稱就好,至於詳細方法、與什麼是 AppleWebkit,可以參考下面連結。

參考連結