amikitevich
9/11/2018 - 10:06 AM

Check and compare ios version with provided

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