macOS-ua-sierra
by Nic Fontaine
JavaScript
/***************************
swap build for macOS sierra or higher
userAgent needs to be in format "xxxx (xxxx; xxx Mac OS X ##.#; xxxxx) xxxxxxx xxxxxx"
splits by:
"(" ")"
";" ";"
"Mac OS X "
then before decimal, if > 10
or if 10 && second decimal >= 12
swap targetUrl string from builds object
***************************/
// insert urls of 2 builds
const builds = {
preSierra: "",
postSierra: ""
}
// holder for target url, after UA logic
let targetUrl = ''
// grab useragent string
const ua = navigator.userAgent
// testing string
// const ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0'
// Mozilla/#.# (Macintosh; Intel Mac OS X ##.##; rv:##.#) Gecko/######## Firefox/##.#
if (ua.indexOf('Mac OS') > -1) {
// Macintosh; Intel Mac OS X ##.##; rv:##.#) Gecko/######## Firefox/##.#
let sp01 = ua.split('(')
// Macintosh; Intel Mac OS X ##.##; rv:##.#
let sp02 = sp01.toString().split(')')
// Intel Mac OS X ##.##
let sp03 = sp02[0].split(';')[1]
// ##.##
let sp04 = sp03.split('Mac OS X ')[1]
// split by decimal
let ver01 = sp04.split('.')[0]
let ver02 = sp04.split('.')[1]
// version > 10
if (Number(ver01) > 10) {
console.log('macOS version > 10')
targetUrl = builds.postSierra
}
// version >= 10.12
else if (Number(ver01) === 10 && Number(ver02) >= 12) {
console.log('macOS version 10.12 or higher')
targetUrl = builds.postSierra
}
// version < 10.12
else {
console.log('macOS version lower than 10.12')
targetUrl = builds.preSierra
}
}