web-dev-qa-db-ja.com

iPadOsを搭載したiPad上のiPadとMacを区別する

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をどのように区別できるかということです。

11
zvi

IpadOSを検出するために使用した条件:

ua.toLowerCase().indexOf('Macintosh') > -1 && navigator.maxTouchPoints && navigator.maxTouchPoints > 2
2
quangh

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;
}
0
BJax