IOS 13ではApple iPadが使用するユーザーエージェントを変更しました。
代わりに(例えば)
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us)AppleWebKit/531.21.10(KHTML、like Gecko)バージョン/4.0.4 Mobile/7B314 Safari/531.21 .10
それは(例えば)になります
Mozilla/5.0(Macintosh; Intel Mac OS X 10_15)AppleWebKit/605.1.15(KHTML、like Gecko)バージョン/13.0 Safari/605.1.15
私の質問は、iPadとMacをどのように区別できるかということです。
IpadOSを検出するために使用した条件:
ua.toLowerCase().indexOf('Macintosh') > -1 && navigator.maxTouchPoints && navigator.maxTouchPoints > 2
Quanghの answer とMichael Zaporozhetsの answer を組み合わせて、iPadを含むモバイルデバイスを検出します。
detectMobile() {
let isMobile = RegExp(/Android|webOS|iPhone|iPod|iPad/i)
.test(navigator.userAgent);
if (!isMobile) {
const isMac = RegExp(/Macintosh/i).test(navigator.userAgent);
if (isMac && navigator.maxTouchPoints && navigator.maxTouchPoints > 2) {
isMobile = true;
}
}
return isMobile;
}