Skip to content

Instantly share code, notes, and snippets.

@amikitevich
Created September 11, 2018 10:06
Show Gist options
  • Save amikitevich/6e7d26d8b91485d07bf9c243a5a4e8f0 to your computer and use it in GitHub Desktop.
Save amikitevich/6e7d26d8b91485d07bf9c243a5a4e8f0 to your computer and use it in GitHub Desktop.
Check and compare ios version with provided
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