isTablet method
Returns true if we are on a tablet (based on the browser's user agent). User agent has been found to be the following:
- 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
- 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
- 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
- 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;
}