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 both platform
and userAgent
, 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 the iPad
. We need a way to detect that this is an iPad and not a MacBook Pro, but it seems that the navigator does not return iPad
like it does with older iPads.
Any idea how we can fix this issue?
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.