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?
La condition que j'ai utilisée pour détecter IpadOS:
ua.toLowerCase().indexOf('Macintosh') > -1 && navigator.maxTouchPoints && navigator.maxTouchPoints > 2
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;
}