跳到主要内容

平台

示例


参考

属性

constants

tsx
static constants: PlatformConstants;

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

属性:

名称
类型可选说明
isTestingboolean
reactNativeVersionobjectReact Native 版本信息。键为 majorminorpatch,可选 prerelease,值均为数字。
Version
Android
numberAndroid 特定的操作系统版本常量。
Release
Android
string
Serial
Android
stringAndroid 设备的硬件序列号。
Fingerprint
Android
string唯一标识构建的字符串。
Model
Android
stringAndroid 设备对最终用户显示的名称。
Brand
Android
string产品/硬件所关联的消费品品牌名称。
Manufacturer
Android
stringAndroid 设备的制造商。
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
stringiOS 特定的操作系统版本常量。
systemName
iOS
stringiOS 特定的操作系统名称常量。

isPad
iOS

tsx
static isPad: boolean;

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

类型
boolean

isTV

tsx
static isTV: boolean;

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

类型
boolean

isVision

tsx
static isVision: boolean;

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

类型
boolean

isTesting

tsx
static isTesting: boolean;

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

类型
boolean

OS

tsx
static OS: 'android' | 'ios';

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

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

Version

tsx
static Version: 'number' | 'string';

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

类型
number
Android

string
iOS

方法

select()

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

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

参数:

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

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

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

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

示例用法:

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 方法也可以用来返回平台特定的组件,如下所示:

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

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

<Component />;