Use it to check if browser is supported. In default non-strict mode any browser family not present in `minVersions` will pass the check (like Chrome in the third call in the sample bellow). When strict mode is enabled then any not specified browser family in `minVersions` will cause `check` to return `false` (in the sample it is the fourth call, the last one).
*`name` - A human readable name for this browser. E.g. 'Chrome', ''
*`version` - Version number for the browser. E.g. '32.0'
For unknown browsers, Bowser makes a best guess from the UA string. So, these may not be set.
### Rendering engine flags
If detected, one of these flags may be set to true:
*`webkit` - Chrome 0-27, Android <4.4,iOs,BB,etc.
*`blink` - Chrome >=28, Android >=4.4, Opera, etc.
*`gecko` - Firefox, etc.
*`msie` - IE <= 11
*`msedge` - IE > 11
Safari, Chrome and some other minor browsers will report that they have `webkit` engines.
Firefox and Seamonkey will report that they have `gecko` engines.
``` js
if (bowser.webkit) {
// do stuff with safari & chrome & opera & android & blackberry & webos & silk
}
```
### Device flags
If detected, one of these flags may be set to true:
*`mobile` - All detected mobile OSes are additionally flagged `mobile`, **unless it's a tablet**
*`tablet` - If a tablet device is detected, the flag `tablet` is **set instead of `mobile`**.
### Browser flags
If detected, one of these flags may be set to true. The rendering engine flag is shown in []'s:
*`chrome` - [`webkit`|`blink`]
*`chromium` - [`webkit`|`blink`]
*`firefox` - [`gecko`]
*`msie`
*`msedge`
*`safari` - [`webkit`]
*`android` - native browser - [`webkit`|`blink`]
*`ios` - native browser - [`webkit`]
*`opera` - [`blink` if >=15]
*`samsungBrowser` - [`blink`]
*`phantom` - [`webkit`]
*`blackberry` - native browser - [`webkit`]
*`webos` - native browser - [`webkit`]
*`silk` - Amazon Kindle browser - [`webkit`]
*`bada` - [`webkit`]
*`tizen` - [`webkit`]
*`seamonkey` - [`gecko`]
*`sailfish` - [`gecko`]
*`ucbrowser` — [`webkit`]
*`qupzilla` — [`webkit`]
*`vivaldi` — [`blink`]
*`sleipnir` — [`blink`]
*`kMeleon` — [`gecko`]
*`whale` — [`blink`]
For all detected browsers the browser version is set in the `version` field.
### OS Flags
If detected, one of these flags may be set to true:
*`mac`
*`windows` - other than Windows Phone
*`windowsphone`
*`linux` - other than `android`, `chromeos`, `webos`, `tizen`, and `sailfish`
*`chromeos`
*`android`
*`ios` - also sets one of `iphone`/`ipad`/`ipod`
*`blackberry`
*`firefoxos`
*`webos` - may also set `touchpad`
*`bada`
*`tizen`
*`sailfish`
`osname` and `osversion` may also be set:
*`osname` - for the OS flags detected above: macOS, Windows, Windows Phone, Linux, Chrome OS, Android, iOS, Blackberry OS, Firefox OS, WebOS, Bada, Tizen, Sailfish OS, and Xbox
*`osversion` - for Android, iOS, MacOS, Windows, Windows Phone, WebOS, Bada, and Tizen. If included in UA string.
iOS is always reported as `ios` and additionally as `iphone`/`ipad`/`ipod`, whichever one matches best.
If WebOS device is an HP TouchPad the flag `touchpad` is additionally set.
### Browser capability grading
One of these flags may be set:
*`a` - This browser has full capabilities
*`c` - This browser has degraded capabilities. Serve simpler version
*`x` - This browser has minimal capabilities and is probably not well detected.
There is no `b`. For unknown browsers, none of these flags may be set.
### Ender Support
`package.json`
``` json
"dependencies": {
"bowser": "x.x.x"
}
```
``` js
if (require('bowser').chrome) {
alert('Hello Silicon Valley')
}
```
### Contributing
If you'd like to contribute a change to bowser, modify the files in `src/`, then run the following (you'll need node + npm installed):
``` sh
$ npm install
$ make test
```
Please do not check-in the built files `bowser.js` and `bowser.min.js` in pull requests.
### Adding tests
See the list in `src/useragents.js` with example user agents and their expected bowser object.
Whenever you add support for new browsers or notice a bug / mismatch, please update the list and
check if all tests are still passing.
### Similar Projects
* [Kong](https://github.com/BigBadBleuCheese/Kong) - A C# port of Bowser.
### License
Licensed as MIT. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.