This has been deprecated in favor of Detect It
Detect Touch Devices
Live touch detection test
detect-touch
will detect if a device has a touch interface. It provides both a boolean one time touch detection on import, as well as a function to run the touch detection at any time.
Installing detect-touch
$ npm install --save detect-touch
Importing detect-touch
Importing only the hasTouch
boolean:
import { hasTouch } from 'detect-touch';
var hasTouch = require('detect-touch').hasTouch;
Importing only the detectTouch
function:
import { detectTouch } from 'detect-touch';
var detectTouch = require('detect-touch').detectTouch;
Importing both the hasTouch
boolean and the detectTouch
function:
import { hasTouch, detectTouch } from 'detect-touch';
var hasTouch = require('detect-touch').hasTouch;
var detectTouch = require('detect-touch').detectTouch;
Using detect-touch
The hasTouch
boolean is established at the time it is imported, and the function to detect a touch device runs only one time. In most cases this is all you need.
hasTouch === true;
hasTouch === false;
The detectTouch
function attempts to detect a touch device each time it is called and can be used to check or recheck for a touch device at a specific time. Returns a boolean. For example, if detect-touch
doesn't have access to the window
when it is imported you'll need to wait until it does before checking if a device has a touch interface.
detectTouch() === true;
detectTouch() === false;
Detection Tests
detect-touch
checks to see if the browser implements any of the following:
The standard W3C Touch Events API (this is the vast majority of touch devices), by checking for:
'ontouchstart' in window
Number of touch points (required to detect Microsoft's Pointer Events API running on a touch device, however, devices not implementing Pointer Events may also indicate this), by checking for:
window.navigator.maxTouchPoints > 0 ||
window.navigator.msMaxTouchPoints > 0
Firefox's legacy DocumentTouch
(which is now obsolete), by checking for:
window.DocumentTouch && document instanceof DocumentTouch