I know with React Native that we have the ability to determine whether iOS or Android is being run using the Platform
module, but how can we determine what device is being used on iOS?
DeviceInfo. getModel() - to get the device model, for example, iPhone X. DeviceInfo. getSystemVersion() - to get the system version, for example, 12.0 or 9.0.
You can use the react-native-device-info package along with the Dimensions API. Check the isTablet() method and apply different styles according on the result.
As of 9.02.2018 there is also
import { Platform } from 'react-native'
Platform.isPad // boolean
Mind that (as of now) it has no android counterpart.
Simplest approach will be using the aspect ratio. The code will be:
import { Dimensions } from 'react-native';
const {height, width} = Dimensions.get('window');
const aspectRatio = height/width;
if(aspectRatio>1.6) {
// Code for Iphone
}
else {
// Code for Ipad
}
Aspect ratio of iPad is 4:3 (1.334) and aspect ratio of iPhone is 16:9 (1.778)
Make sure to check if you are on an iOS device using Platform.OS === 'ios'
method before applying the above logic.
If you're looking for a way to do that without including 3rd party libraries (like react-native-device-info) you can also do:
import { NativeModules } from 'react-native';
const { PlatformConstants } = NativeModules;
const deviceType = PlatformConstants.interfaceIdiom;
deviceType
can take the values: phone
, pad
, tv
, carplay
and unknown
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With