mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 16:08:47 +03:00
Merge branch 'develop' of github.com:faisalman/ua-parser-js into develop
This commit is contained in:
commit
5ba5e7abc9
@ -212,6 +212,12 @@ requirejs(['ua-parser-js'], function(UAParser) {
|
||||
});
|
||||
```
|
||||
|
||||
## Using CDN
|
||||
|
||||
```html
|
||||
<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0/dist/ua-parser.min.js"></script>
|
||||
```
|
||||
|
||||
## Using bower
|
||||
|
||||
```sh
|
||||
|
@ -138,7 +138,7 @@
|
||||
}
|
||||
i += 2;
|
||||
}
|
||||
//console.log(this);
|
||||
// console.log(this);
|
||||
//return this;
|
||||
},
|
||||
|
||||
@ -326,6 +326,9 @@
|
||||
/version\/([\w\.]+).+?(mobile\s?safari|safari)/i // Safari & Safari Mobile
|
||||
], [VERSION, NAME], [
|
||||
|
||||
/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Google Search Appliance on iOS
|
||||
], [[NAME, 'GSA'], VERSION], [
|
||||
|
||||
/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Safari < 3.0
|
||||
], [NAME, [VERSION, mapper.str, maps.browser.oldsafari.version]], [
|
||||
|
||||
@ -649,9 +652,11 @@
|
||||
|
||||
/android.+(\w+)\s+build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
|
||||
/android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Hongmi
|
||||
/android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d\w)?)\s+build/i // Xiaomi Mi
|
||||
/android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Mi
|
||||
/android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+)?)\s+build/i // Redmi Phones
|
||||
], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [
|
||||
|
||||
/android.+(mi[\s\-_]*(?:pad)?(?:[\s_]*[\w\s]+)?)\s+build/i // Mi Pad tablets
|
||||
],[[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, TABLET]], [
|
||||
/android.+;\s(m[1-5]\snote)\sbuild/i // Meizu Tablet
|
||||
], [MODEL, [VENDOR, 'Meizu'], [TYPE, TABLET]], [
|
||||
|
||||
@ -874,7 +879,7 @@
|
||||
/////////////////
|
||||
// Constructor
|
||||
////////////////
|
||||
|
||||
/*
|
||||
var Browser = function (name, version) {
|
||||
this[NAME] = name;
|
||||
this[VERSION] = version;
|
||||
@ -889,7 +894,7 @@
|
||||
};
|
||||
var Engine = Browser;
|
||||
var OS = Browser;
|
||||
|
||||
*/
|
||||
var UAParser = function (uastring, extensions) {
|
||||
|
||||
if (typeof uastring === 'object') {
|
||||
@ -903,30 +908,35 @@
|
||||
|
||||
var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);
|
||||
var rgxmap = extensions ? util.extend(regexes, extensions) : regexes;
|
||||
var browser = new Browser();
|
||||
var cpu = new CPU();
|
||||
var device = new Device();
|
||||
var engine = new Engine();
|
||||
var os = new OS();
|
||||
//var browser = new Browser();
|
||||
//var cpu = new CPU();
|
||||
//var device = new Device();
|
||||
//var engine = new Engine();
|
||||
//var os = new OS();
|
||||
|
||||
this.getBrowser = function () {
|
||||
var browser = { name: undefined, version: undefined };
|
||||
mapper.rgx.call(browser, ua, rgxmap.browser);
|
||||
browser.major = util.major(browser.version); // deprecated
|
||||
return browser;
|
||||
};
|
||||
this.getCPU = function () {
|
||||
var cpu = { architecture: undefined };
|
||||
mapper.rgx.call(cpu, ua, rgxmap.cpu);
|
||||
return cpu;
|
||||
};
|
||||
this.getDevice = function () {
|
||||
var device = { vendor: undefined, model: undefined, type: undefined };
|
||||
mapper.rgx.call(device, ua, rgxmap.device);
|
||||
return device;
|
||||
};
|
||||
this.getEngine = function () {
|
||||
var engine = { name: undefined, version: undefined };
|
||||
mapper.rgx.call(engine, ua, rgxmap.engine);
|
||||
return engine;
|
||||
};
|
||||
this.getOS = function () {
|
||||
var os = { name: undefined, version: undefined };
|
||||
mapper.rgx.call(os, ua, rgxmap.os);
|
||||
return os;
|
||||
};
|
||||
@ -945,11 +955,11 @@
|
||||
};
|
||||
this.setUA = function (uastring) {
|
||||
ua = uastring;
|
||||
browser = new Browser();
|
||||
cpu = new CPU();
|
||||
device = new Device();
|
||||
engine = new Engine();
|
||||
os = new OS();
|
||||
//browser = new Browser();
|
||||
//cpu = new CPU();
|
||||
//device = new Device();
|
||||
//engine = new Engine();
|
||||
//os = new OS();
|
||||
return this;
|
||||
};
|
||||
return this;
|
||||
|
@ -968,5 +968,15 @@
|
||||
"version" : "6.5.8.2910",
|
||||
"major" : "6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"desc" : "GSA on iOS",
|
||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) GSA/30.1.161623614 Mobile/14F89 Safari/602.1",
|
||||
"expect" :
|
||||
{
|
||||
"name" : "GSA",
|
||||
"version" : "30.1.161623614",
|
||||
"major" : "30"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
File diff suppressed because it is too large
Load Diff
15
test/test.js
15
test/test.js
@ -65,6 +65,21 @@ for (var i in methods) {
|
||||
});
|
||||
}
|
||||
|
||||
describe('Returns', function () {
|
||||
it('getResult() should returns JSON', function(done) {
|
||||
assert.deepEqual(new UAParser('').getResult(),
|
||||
{
|
||||
ua : '',
|
||||
browser: { name: undefined, version: undefined, major: undefined },
|
||||
cpu: { architecture: undefined },
|
||||
device: { vendor: undefined, model: undefined, type: undefined },
|
||||
engine: { name: undefined, version: undefined},
|
||||
os: { name: undefined, version: undefined }
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Extending Regex', function () {
|
||||
var uaString = 'Mozilla/5.0 MyOwnBrowser/1.3';
|
||||
var myOwnBrowser = [[/(myownbrowser)\/((\d+)?[\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, UAParser.BROWSER.MAJOR]];
|
||||
|
Loading…
x
Reference in New Issue
Block a user