Ember UserAgent is an Ember Addon for UserAgent parsing via UAParser.js.
The userAgent
service works in both browser & Fastboot environments and makes it easy to detect:
- Device Type
- Device Model
- Browser
- Operating System
- Layout Engine
- CPU architecture
- Ember.js v3.8 or above
- Ember CLI v2.13 or above
- Node.js v8 or above
ember install ember-useragent
Ember UserAgent exposes a (1) service, which is automatically injected into controllers, components and routes, and a (2) template helper.
const userAgent = this.get('userAgent');
userAgent.get('browser.isChrome'); // Boolean
userAgent.get('engine.isWebKit'); // Boolean
userAgent.get('os.info'); // => { name: 'Ubuntu', version: '11.10' }
userAgent.get('device.info'); // => { model: 'iPhone 7', type: 'mobile', vendor: 'Apple'}
The service exposes all of UAParser's functions, but also adds some properties for quick access.
browser | device | engine | os | cpu |
---|---|---|---|---|
info | info | info | info | architecture |
isChrome | isConsole | isWebKit | isAndroid | |
isChromeHeadless | isDesktop | isIOS | ||
isEdge | isMobile | isLinux | ||
isFirefox | isTablet | isMacOS | ||
isIE | isWindows | |||
isSafari |
The service also exposes the userAgent
property, which contains the user agent string.
You can overwrite this property, if you want to force a certain user agent string.
All of the properties described above will update in accordance.
Ember UserAgent auto imports ua-parser-js
into your application using ember-auto-import:
import UAParser from 'ua-parser-js';
By default, this addon will generate an initializer in app/initializers/user-agent.js
that injects the userAgent
service app-wide. If the userAgent
property conflicts with other addons or you wish to use manual injection (Ember.service.inject
) you can override this file.
For more information on how to use UAParser.js, please refer to the documentation.