跳到主要内容
版本:0.83

平台

示例​


参考

属性​

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;

返回一个布尔值,表示设备是否为电视。

类型
boolean

isVision​

React TSX
static isVision: boolean;

返回一个布尔值,表示设备是否为 Apple Vision。如果你在使用 Apple Vision Pro (设计用于 iPad),则 isVision 会是 false,但 isPad 会是 true。

类型
boolean

isTesting​

React TSX
static isTesting: boolean;

返回一个布尔值,表示应用是否在开发者模式下并且设置了测试标志。

类型
boolean

OS​

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

返回一个字符串,表示当前操作系统。

类型
枚举 ('android', 'ios')

Version​

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

返回当前操作系统的版本。

类型
number
Android

string
iOS

方法​

select()​

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

返回当前运行平台最匹配的值。

参数:​

名称类型必填说明
configobject是见下方配置说明。

select 方法返回当前运行平台最匹配的值。也就是说,如果你运行在手机上,会优先选择 android 和 ios 键对应的值;如果这些没有指定,则会使用 native 键;最后是 default 键。

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

  • android (任意类型)
  • ios (任意类型)
  • native (任意类型)
  • default (任意类型)

示例用法:

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',
},
}),
},
});

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

因为对应平台键的值类型可以是任意类型,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 />;