来自iPhone X的React Native Device Info的设备模型

时间:2017-11-07 07:04:26

标签: react-native

一般问题在这里。我正在使用rn-device-info库。我想知道iPhone X console.log("Device Model", DeviceInfo.getModel());的回报是什么?它是" iPhone X"或者" iPhone 10"?

感谢。

3 个答案:

答案 0 :(得分:1)

它将返回iPhone X

来源:RNDeviceInfo.m

PS:确保您使用的是最新版本的rn-device-info

答案 1 :(得分:1)

从' react-native添加NativeModules;图书馆

然后你可以检查设备是否是iPhonex NativeModules.DeviceInfo.isIPhoneX_deprecated 如果为true,则设备为iphoneX,反之亦然。

这已被弃用,但仍可在RN 55.4中使用。它可能不是未来版本的解决方案。

答案 2 :(得分:1)

这可能是个要回答的老问题,但这是寻找它的人的答案,而无需安装任何外部库即可创建文件名 isIphoneX.js

插入此代码

import { Dimensions, Platform } from 'react-native';

export function isIphoneX() {
  const dim = Dimensions.get('window');

  return (
    // This has to be iOS
    Platform.OS === 'ios' &&

    // Check either, iPhone X or XR
    (isIPhoneXSize(dim) || isIPhoneXrSize(dim))
  );
}

export function isIPhoneXSize(dim) {
  return dim.height == 812 || dim.width == 812;
}

export function isIPhoneXrSize(dim) {
  return dim.height == 896 || dim.width == 896;
}

上面的代码将检查它是否为iPhone X,Xr 您可以根据需要更新代码,只需创建新函数并将其导出并在代码内使用它即可。