Skip to content

Instantly share code, notes, and snippets.

@lotterfriends
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lotterfriends/c847dc13f6667b9f58e9 to your computer and use it in GitHub Desktop.
Save lotterfriends/c847dc13f6667b9f58e9 to your computer and use it in GitHub Desktop.
Flowplayer user agent test
// run with rhino, io.js or node
function parseIpadVersion(UA) {
var e = /Version\/(\d\.\d)/.exec(UA);
if (e && e.length > 1) {
return parseFloat(e[1], 10);
}
return 0;
}
function test(name, UA) {
var IS_IE = true || /Trident\/7/.test(UA),
IS_IPAD = /iPad|MeeGo/.test(UA) && !/CriOS/.test(UA),
IS_IPAD_CHROME = /iPad/.test(UA) && /CriOS/.test(UA),
IS_IPHONE = /iP(hone|od)/i.test(UA) && !/iPad/.test(UA),
IS_ANDROID = /Android/.test(UA) && !/Firefox/.test(UA),
IS_ANDROID_FIREFOX = /Android/.test(UA) && /Firefox/.test(UA),
IS_SILK = /Silk/.test(UA),
IS_WP = /IEMobile/.test(UA),
WP_VER = IS_WP ? parseFloat(/Windows\ Phone\ (\d+\.\d+)/.exec(UA)[1], 10) : 0,
IE_MOBILE_VER = IS_WP ? parseFloat(/IEMobile\/(\d+\.\d+)/.exec(UA)[1], 10) : 0,
IPAD_VER = IS_IPAD ? parseIpadVersion(UA) : 0,
ANDROID_VER = IS_ANDROID ? parseFloat(/Android\ (\d\.\d)/.exec(UA)[1], 10) : 0;
// console.log('IS_IE', IS_IE);
// console.log('IS_IPAD', IS_IPAD);
// console.log('IS_IPAD_CHROME', IS_IPAD_CHROME);
// console.log('IS_IPHONE', IS_IPHONE);
// console.log('IS_ANDROID', IS_ANDROID);
// console.log('IS_ANDROID_FIREFOX', IS_ANDROID_FIREFOX);
// console.log('IS_SILK', IS_SILK);
// console.log('IS_WP', IS_WP);
// console.log('WP_VER', WP_VER);
// console.log('IE_MOBILE_VER', IE_MOBILE_VER);
// console.log('IPAD_VER', IPAD_VER);
// console.log('ANDROID_VER', ANDROID_VER);
var inlineVideo = WP_VER >= 8.1 && IE_MOBILE_VER >= 11 || !IS_IPHONE && (!IS_ANDROID || ANDROID_VER >= 3);
console.log(name, inlineVideo);
}
test('IE WP8.1', 'Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11; IEMobile/11.0) like Android 4.1.2; compatible) like iPhone OS 7_0_3 Mac OS X WebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari /537.36')
test('IPhone', 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5');
test('IPad', 'Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5');
test('Android 2.2.1', 'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1');
test('Android 3.0.0', 'Mozilla/5.0 (Linux; U; Android 3.0.0; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1');
test('Android 5', 'Mozilla/5.0 (Linux; Android 5.0; en-us; Samsung Galaxy S5) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 Chrome/39.0.2171.65');
test('Blackberry', 'Mozilla/5.0 (BlackBerry; U; BlackBerry AAAA; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/X.X.X.X Mobile Safari/534.11+');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment