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
  }
	
}