iOS 13下的設備判斷

1. 通常的設備判斷方式

通常在進行如下判斷時,常使用navigator.userAgent

(1) 移動端還是PC

function isMobile(){
  return /Mobile/i.test(navigator.userAgent);
}

(2) 安卓還是iOS

isIOS() {
    return /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)
}
isAndroid(){
	return (/(Android)/i.test(navigator.userAgent)
}

(3) 是否用微信打開

isWechat(){
	return (/(MicroMessenger)/i.test(navigator.userAgent)
}

2. iOS 13的問題

使用iOS 13下的移動設備,Safari默認開啓請求桌面端的網站。
navigator.userAgent在Mac在safari下顯示的:

“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.2 Safari/605.1.15”

而在ipad上顯示:
在這裏插入圖片描述

所以該屬性無法進行區分。

3. iOS 13下如何判斷設備

只能用GPU來判斷。例如:

(function () {
    var canvas = document.createElement('canvas'),
        gl = canvas.getContext('experimental-webgl'),
        debugInfo = gl.getExtension('WEBGL_debug_renderer_info');

    console.log(gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL));
})();

可參考: https://51degrees.com/blog/device-detection-for-apple-iphone-and-ipad

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章