跳到主要内容

平台

示例


参考

属性

constants

React TSX
static constants: PlatformConstants;

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

属性:

名称
类型可选描述
isTestingboolean
reactNativeVersionobjectReact Native 版本信息。键为 majorminorpatch,以及可选的 prerelease,值为 number
Version
Android
numberAndroid 特有的 OS 版本常量。
Release
Android
string
Serial
Android
stringAndroid 设备的硬件序列号。
Fingerprint
Android
string唯一标识构建版本的字符串。
Model
Android
string对最终用户可见的 Android 设备名称。
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 特有的 OS 版本常量。
systemName
iOS
stringiOS 特有的 OS 名称常量。

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';

返回表示当前 OS 的字符串值。

类型
enum('android''ios'

Version

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

返回 OS 的版本。

类型
number
Android

string
iOS

方法

select()

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

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

参数:

名称类型必需描述
configobject请参阅下面的 config 描述。

select 方法会返回与你当前运行的平台最匹配的值。也就是说,如果你运行在手机上,androidios 键将优先使用。如果未指定这些键,则会使用 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: {
// other platforms, web for example
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 />;