Device detection and browser sniffing are very useful when building mobile applications.
The Dojo API dojo/has
module
can be used to inspect the browser and platform. See the Feature column
in the Feature Names table for the
dojo/has
module.
The code snippet below can be used to detect if the device supports touch.
define(["dojo/has"], function(has){
// --------------------------------------------------------------------
// Environment is running on the browser platform
// check if the device supports touch
// touch-events
// --------------------------------------------------------------------
if (has("host-browser") && has("touch")) {
// touch specific code
}
else {
// non-touch specific code
}
});
When building mobile applications you generally will target a smartphone, tablet, and the desktop.
Targeting several different types of screens (devices) (including the desktop) will require support for several browsers.
The Dojo API dojo/sniff
module
can also be used to detect the user's browser and version.
require(["dojo/sniff"], function(sniff) {
if(sniff("android") > 5 && sniff("chrome") > 44) {
// --------------------------------------------------------------------
// Android Platform:
// Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58K)
// AppleWebKit/537.36 (KHTML, like Gecko)
// Chrome/46.0.2490.76 Mobile Safari/537.36
// --------------------------------------------------------------------
console.log("Android Platform: %s", navigator.userAgent);
}
else if(sniff("ios") > 8 && sniff("safari") > 7) {
// --------------------------------------------------------------------
// iOS Platform: Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X)
// AppleWebKit/601.1.46 (KHTML, like Gecko)
// Version/9.0 Mobile/13B143 Safari/601.1
// --------------------------------------------------------------------
console.log("iOS Platform: %s", navigator.userAgent);
}
});
Additional information about dojo's has and sniff api can be found here.