How to detect iPad Pro as iPad using javascript?
Solution 1
I guess that iPad Pro is upgraded to iPadOS 13 Beta. Since Apple claimed Desktop-Class Browsing with Safari on iPadOS, it seems mobile Safari also mimics macOS behavior and user agent.
So, the short answer is it's not possible.
However you can try workarounds from answers to this question.
Solution 2
iPadPro reports navigator.platform the browser as 'MacIntel', but that is the same as other platforms.
Currently (2019) difference between iPadPro and the other platforms is that iPadPro is touch enabled.
Here are a couple of helpful methods.
function isIOS() {
if (/iPad|iPhone|iPod/.test(navigator.platform)) {
return true;
} else {
return navigator.maxTouchPoints &&
navigator.maxTouchPoints > 2 &&
/MacIntel/.test(navigator.platform);
}
}
function isIpadOS() {
return navigator.maxTouchPoints &&
navigator.maxTouchPoints > 2 &&
/MacIntel/.test(navigator.platform);
}
Solution 3
You can use Regular Expression for this.
var isIPadPro = /Macintosh/.test(navigator.userAgent) && 'ontouchend' in document;
Solution 4
You may use screen size to check it, iPad pro came with 2 different side. Detail implement bellow, modify it as your use case
function isIpadPro() {
var ratio = window.devicePixelRatio || 1;
var screen = {
width : window.screen.width * ratio,
height : window.screen.height * ratio
};
return (screen.width === 2048 && screen.height === 2732) || (screen.width === 2732 && screen.height === 2048) || (screen.width === 1536 && screen.height === 2048) || (screen.width === 2048 && screen.height === 1536);
}
Screen size reference: http://screensiz.es/
Solution 5
Currently, in October 2020 the only way I know is:
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 0) || navigator.platform === 'iPad'
![Wonka](https://i.stack.imgur.com/2XRA9.jpg?s=256&g=1)
Wonka
Updated on October 28, 2020Comments
-
Wonka over 3 years
We were able to detect an iPad device using javascript like this:
function isDeviceiPad(){ return navigator.platform.match(/iPad/i); }
That worked perfectly in detecting iPad devices, but when we checked from an
iPad Pro (10.5 inch)
, it does not detect that it is an iPad.To further investigate, we drilled down into the
navigator
object, checked bothplatform
anduserAgent
, and got these results:navigator.platform = 'MacIntel'; navigator.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15)';
The issue is that
navigator.platform = 'MacIntel'
(which is the same as the MacBook Pro) is returned instead of theiPad
. We need a way to detect that this is an iPad and not a MacBook Pro, but it seems that the navigator does not returniPad
like it does with older iPads.Any idea how we can fix this issue?