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.