判別造訪網頁裝置的OS
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,可以參考下面連結。