isTablet method

bool isTablet ()

Returns true if we are on a tablet (based on the browser's user agent). User agent has been found to be the following:

  1. User agent chrome on ipad: Mozilla/5.0 (iPad; CPU OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) CriOS/43.0.2357.61 Mobile/12H143 Safari/600.1.4
  2. User agent safari on ipad: Mozilla/5.0 (iPad; CPU OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4
  3. User agent chrome on galaxy: Mozilla/5.0 (Linux; Android 4.4.2; SM-P600 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.93 Safari/537.36
  4. User agent chrome on Dell D830 Windows 7: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36

Must possibly be refined to detect all kinds of tablets.

Implementation

static bool isTablet() {
  String info = window.navigator.userAgent;
  bool isTablet = false;
  if (info.toLowerCase().contains("android") ||
      info.toLowerCase().contains("ipad") ||
      info.toLowerCase().contains("iphone")) {
    isTablet = true;
  } else if (info.toLowerCase().contains("touch")) {
    // TODO this hopefully detects MS Surface, however also Desktop touch screen!
    isTablet = true;
  }
  return isTablet;
}