javascriptjquerytouchtablet

How to determine if the client is a touch device


is there any nice and clean method or trick to find out if the user is on a touch-device or not?

I know there is stuff like var isiPad = navigator.userAgent.match(/iPad/i) != null;

but I simply wonder if there is a trick to generally determine if the user is on Touch device? Because there are a lot more touch devices and tablets out there then just iPads.

thank you.


Solution

  • You can use the following JS function:

    const isTouchDevice = () => 'ontouchstart' in window || 
      navigator.maxTouchPoints > 0 || 
      navigator.msMaxTouchPoints > 0;
    

    Please note the above code only tests if the browser has support for touch, not the device.

    Related links:

    There may be detection in jquery for mobile and jtouch