跳到主要内容
版本:0.79

平台

示例​


参考

属性​

constants​

React TSX
static constants: PlatformConstants;

返回一个包含所有可用的与平台相关的通用和特定常量的对象。

属性:

名称
类型可选描述
isDisableAnimationsboolean是是否应禁用动画。未设置时,默认使用 isTesting 的值。
isTestingboolean否
reactNativeVersionobject否React Native 版本信息。键为 major、minor、patch,可包含可选的 prerelease,值为 number 类型。
Version
Android
number否Android 特有的操作系统版本常量。
Release
Android
string否
Serial
Android
string否Android 设备的硬件序列号。
Fingerprint
Android
string否唯一标识此构建的字符串。
Model
Android
string否Android 设备面向最终用户显示的名称。
Brand
Android
string否与产品或硬件关联、面向消费者的品牌。
Manufacturer
Android
string否Android 设备的制造商。
ServerHost
Android
string是
uiMode
Android
string否可选值为:'car'、'desk'、'normal'、'tv'、'watch' 和 'unknown'。更多信息请参阅 Android ModeType.
forceTouchAvailable
iOS
boolean否指示设备是否支持 3D Touch。
interfaceIdiom
iOS
string否设备的界面类型。更多信息请参阅 UIUserInterfaceIdiom.
osVersion
iOS
string否iOS 特有的操作系统版本常量。
systemName
iOS
string否iOS 特有的操作系统名称常量。

isDisableAnimations​

React TSX
static isDisableAnimations: boolean;

动画关闭时返回 true,通常发生在自动化测试期间。未设置时回退到 isTesting 的值。在 Android 上,可通过 IS_DISABLE_ANIMATIONS 系统属性设置。

类型
boolean

isPad
iOS
​

React TSX
static isPad: boolean;

返回一个布尔值,定义设备是否为 iPad。

类型
boolean

isTV​

React TSX
static isTV: boolean;

返回一个布尔值,定义设备是否为 TV。

类型
boolean

isVision​

React TSX
static isVision: boolean;

返回一个布尔值,定义设备是否为 Apple Vision。如果您使用的是 Apple Vision Pro (Designed for iPad) isVision 将为 false 但 isPad 将为 true

类型
boolean

isTesting​

React TSX
static isTesting: boolean;

返回一个布尔值,定义应用程序是否在设置了测试标志的开发模式下运行。

类型
boolean

OS​

React TSX
static OS: 'android' | 'ios';

返回表示当前操作系统的字符串值。

类型
enum('android', 'ios')

Version​

React TSX
static Version: 'number' | 'string';

返回操作系统的版本。

类型
number
Android

string
iOS

方法​

select()​

React TSX
static select(config: Record<string, T>): T;

返回最适合您当前运行平台的值。

参数:​

名称类型必需描述
configobject是见下方的 config 描述。

select 方法返回最适合您当前运行平台的值。也就是说,如果您在手机运行,android 和 ios 键将优先。如果未指定这些,将使用 native 键,然后是 default 键。

config 参数是一个对象,包含以下键:

  • android (any)
  • ios (any)
  • native (any)
  • default (any)

用法示例:

React TSX
import {Platform, StyleSheet} from 'react-native';

const styles = StyleSheet.create({
container: {
flex: 1,
...Platform.select({
android: {
backgroundColor: 'green',
},
ios: {
backgroundColor: 'red',
},
default: {
// 其他平台,例如 web
backgroundColor: 'blue',
},
}),
},
});

这将导致容器在所有平台上具有 flex: 1,在 Android 上具有绿色背景色,在 iOS 上具有红色背景色,在其他平台上具有蓝色背景色。

由于对应平台键的值可以是 any 类型,select 方法也可用于返回特定于平台的组件,如下所示:

React TSX
const Component = Platform.select({
ios: () => require('ComponentIOS'),
android: () => require('ComponentAndroid'),
})();

<Component />;
React TSX
const Component = Platform.select({
native: () => require('ComponentForNative'),
default: () => require('ComponentForWeb'),
})();

<Component />;