How to get iOS version in React Native?

Viewed 11323

I'm facing the difficulty to retrieve iOS version and according to this link https://github.com/facebook/react-native/issues/3766 , it seems there isn't gonna be any support to retrieve iOS Version. I've tried third partyprovider but seems like unable to retrieve iOS Version too.

May I know how you guys handle that?

2 Answers

Detecting the iOS version

On iOS, the Version is a result of -[UIDevice systemVersion], which is a string with the current version of the operating system. An example of the system version is "10.3". For example, to detect the major version number on iOS:

import {Platform} from 'react-native';

const majorVersionIOS = parseInt(Platform.Version, 10);
console.log("iOS version " + majorVersionIOS);

This is my DeviceUtils.ts file to reuse that logic. This could be greatly improved, happy to hear suggestions.

  • Get Major Version
export const getMajorVersionIOS = (): number => {
  if (Platform.OS != 'ios' ) {
    throw Error("Platform is not iOS");
  }

  return parseInt(Platform.Version, 10);
}
  • Get Minor Version
export const getMinorVersionIOS = (): number => {
  if (Platform.OS != 'ios' ) {
    throw Error("Platform is not iOS");
  }

  return parseInt(
    Platform.Version.substring(
      Platform.Version.indexOf('.') + 1
    )
  , 10);
}
  • If it's iOS >= 14.5
export const isIOSAbove14Point5 = (): boolean => {
  if (Platform.OS === 'ios' ) {
    const majorVersion = getMajorVersionIOS();
    const minorVersion = getMinorVersionIOS();

    if (majorVersion >= 15) return true;

    if (majorVersion === 14 && minorVersion >= 5) return true;
  }

  // It's not iOS or it's not above 14.5
  return false;
}
Related