如果平板电脑或屏幕以英寸为单位,则进行本机检

Ret*_*n-1 5 android tablet screen-resolution ios react-native

我为平板电脑和移动设备建立了不同的渲染逻辑.我想知道是否有办法让屏幕尺寸以英寸或甚至任何模块来自动检测设备是否是平板电脑.

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

谢谢.

Hoà*_*Anh 9

如果您不想使用库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)
    );
};
Run Code Online (Sandbox Code Playgroud)


Ret*_*n-1 8

根据@ martinarroyo的回答,一种方法可以使用react-native-device-info包.

然而,android实现基于屏幕分辨率.这可能是一个问题,因为有许多平板电脑设备的分辨率低于许多移动设备,这可能会导致问题.

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

function isTabletBasedOnRatio(ratio){

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

}
Run Code Online (Sandbox Code Playgroud)

这不是一个完美的解决方案,但有许多小型平板电脑具有相同的声音甚至平板(安卓模糊),这种解决方案也是包容性的.


mar*_*oyo 5

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