Created
September 11, 2018 10:06
-
-
Save amikitevich/6e7d26d8b91485d07bf9c243a5a4e8f0 to your computer and use it in GitHub Desktop.
Check and compare ios version with provided
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const getIosVersion = () => { | |
return [11, 3, 0]; | |
if (isIos()) { | |
const v = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/); | |
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || '0', 10)]; | |
} | |
}; | |
/** | |
* iosVersionToCheck is : string like '11' or '11.0' or (11.1.0), number like 10 or 11 or 9 | |
* returns bool. If device hasn't ios returns null. if can't parse iosVersionToCheck returns null | |
* | |
*/ | |
const isEarlierVersionIosThan = (iosVersionToCheck) => { | |
const deviceIosVersion = getIosVersion(); | |
if (!deviceIosVersion) { | |
return null; | |
} | |
const [major = 0, minor = null, path = null] = String(iosVersionToCheck) | |
.split('.') | |
.map(Number); | |
console.log(deviceIosVersion, deviceIosVersion[1]); | |
console.log(major, minor, path); | |
switch (true) { | |
case Number.isInteger(major) && Number.isInteger(minor) && Number.isInteger(path): { | |
return deviceIosVersion[0] <= major && deviceIosVersion[1] <= minor && deviceIosVersion[2] < path; | |
} | |
case Number.isInteger(major) && Number.isInteger(minor): { | |
return deviceIosVersion[0] <= major && deviceIosVersion[1] < minor; | |
} | |
case Number.isInteger(major): { | |
return deviceIosVersion[0] < major; | |
} | |
default: { | |
return null; | |
} | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment