isMobileDevice.ts 558 B

123456789101112131415
  1. import browser from '../extensions/browser'
  2. export function isMobileDevice(): boolean {
  3. const ua = typeof navigator !== 'undefined' ? navigator.userAgent : ''
  4. const isMobileUserAgent = /Android|iPhone|iPad|Mobile/i.test(ua)
  5. // Input-capability fallback.
  6. const isTouchOnlyInput =
  7. typeof window !== 'undefined' &&
  8. typeof window.matchMedia === 'function' &&
  9. window.matchMedia('(pointer: coarse)').matches &&
  10. window.matchMedia('(hover: none)').matches
  11. return browser.ios || browser.android || isMobileUserAgent || isTouchOnlyInput
  12. }