web-dev-qa-db-fra.com

Distinguer iPad et Mac sur iPad avec iPadOs

Dans iOS 13 Apple a changé l'agent utilisateur que l'iPad utilise.

Au lieu de (par exemple)

Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 comme Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, comme Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21 .dix

ça devient (par exemple)

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, comme Gecko) Version/13.0 Safari/605.1.15

Ma question est de savoir comment distinguer l'iPad du mac maintenant?

11
zvi

La condition que j'ai utilisée pour détecter IpadOS:

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

Combiner réponse de quangh et réponse de Michael Zaporozhets pour détecter les appareils mobiles, y compris les iPads.

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