Platform
示例
参考
属性
constants
static constants: PlatformConstants;
返回一个对象,其中包含与平台相关的所有可用通用和特定常量。
属性
名称 | 类型 | 可选 | 描述 |
---|---|---|---|
isTesting | 布尔值 | 否 | |
reactNativeVersion | 对象 | 否 | 有关 React Native 版本的信息。键为 major 、minor 、patch (可选 prerelease ),值为 number 。 |
版本 Android | 数字 | 否 | 特定于 Android 的操作系统版本常量。 |
版本 Android | 字符串 | 否 | |
序列号 Android | 字符串 | 否 | Android 设备的硬件序列号。 |
指纹 Android | 字符串 | 否 | 唯一标识构建的字符串。 |
型号 Android | 字符串 | 否 | Android 设备面向最终用户的名称。 |
品牌 Android | 字符串 | 否 | 产品/硬件将与其关联的消费者可见品牌。 |
制造商 Android | 字符串 | 否 | Android 设备的制造商。 |
ServerHost Android | 字符串 | 是 | |
uiMode Android | 字符串 | 否 | 可能的值为:'car' 、'desk' 、'normal' 、'tv' 、'watch' 和 'unknown' 。详细了解 Android ModeType。 |
forceTouchAvailable iOS | 布尔值 | 否 | 指示设备上 3D Touch 的可用性。 |
interfaceIdiom iOS | 字符串 | 否 | 设备的界面类型。详细了解 UIUserInterfaceIdiom。 |
osVersion iOS | 字符串 | 否 | 特定于 iOS 的操作系统版本常量。 |
systemName iOS | 字符串 | 否 | 特定于 iOS 的操作系统名称常量。 |
isPad
iOS
static isPad: boolean;
返回一个布尔值,该值定义设备是否为 iPad。
类型 |
---|
布尔值 |
isTV
static isTV: boolean;
返回一个布尔值,该值定义设备是否为电视。
类型 |
---|
布尔值 |
isVision
static isVision: boolean;
返回一个布尔值,该值定义设备是否为 Apple Vision。如果您正在使用 Apple Vision Pro(专为 iPad 设计),则 isVision
将为 false
,但 isPad
将为 true
类型 |
---|
布尔值 |
isTesting
static isTesting: boolean;
返回一个布尔值,该值定义应用程序是否在设置了测试标志的开发者模式下运行。
类型 |
---|
布尔值 |
OS
static OS: 'android' | 'ios';
返回表示当前操作系统的字符串值。
类型 |
---|
枚举('android' 、'ios' ) |
Version
static Version: 'number' | 'string';
返回操作系统的版本。
类型 |
---|
数字 Android 字符串 iOS |
方法
select()
static select(config: Record<string, T>): T;
返回您当前正在运行的平台最合适的值。
参数:
名称 | 类型 | 必需 | 描述 |
---|---|---|---|
config | 对象 | 是 | 请参见下面的 config 说明。 |
Select 方法返回您当前正在运行的平台最合适的值。也就是说,如果您在手机上运行,则 android
和 ios
键将优先。如果未指定这些键,则将使用 native
键,然后使用 default
键。
config
参数是一个具有以下键的对象
android
(任意)ios
(任意)native
(任意)default
(任意)
示例用法
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
方法也可用于返回特定于平台的组件,如下所示
const Component = Platform.select({
ios: () => require('ComponentIOS'),
android: () => require('ComponentAndroid'),
})();
<Component />;
const Component = Platform.select({
native: () => require('ComponentForNative'),
default: () => require('ComponentForWeb'),
})();
<Component />;