反应本机检查平板电脑或屏幕是否以英寸为单位

React native check if tablet or screen in inches

我已经为平板电脑和移动设备建立了不同的呈现逻辑。我想知道是否有办法获取以英寸为单位的屏幕尺寸或者甚至任何模块可以自动检测设备是否是平板电脑.

我没有直接使用尺寸 api 来获取屏幕分辨率的原因是有许多 android 平板电脑的分辨率低于许多移动设备。

谢谢。

您可以将 react-native-device-info 包与维度 API 一起使用。检查isTablet()方法并根据结果应用不同的样式。

根据@martinarroyo 的回答,一种解决方法是使用 react-native-device-info 包。

但是 android 实施基于屏幕分辨率。这可能是个问题,因为许多平板设备的分辨率低于许多移动设备,这可能会导致问题。

我将使用并建议的解决方案是对苹果设备使用 react-native-device-info,对 android 设备使用简单的比率逻辑类型:

function isTabletBasedOnRatio(ratio){

if(ratio > 1.6){
    return false;
}else{
    return true;
}

}

这不是一个完美的解决方案,但也有许多具有类似手机比例的小型平板电脑甚至平板手机(android 是模糊的)并且此解决方案也包含这些。

react-native-device-detection

if(Device.isTablet) {
  Object.assign(styles, {
    ...
  });
}

基于 PixelRatio 和屏幕的高度、宽度。

如果您不想使用库 react-native-device-info 可以使用下面的代码,不确定它是否完美但可能会有所帮助

export const isTablet = () => {
  let pixelDensity = PixelRatio.get();
  const adjustedWidth = screenWidth * pixelDensity;
  const adjustedHeight = screenHeight * pixelDensity;
  if (pixelDensity < 2 && (adjustedWidth >= 1000 || adjustedHeight >= 1000)) {
    return true;
  } else
    return (
      pixelDensity === 2 && (adjustedWidth >= 1920 || adjustedHeight >= 1920)
    );
};