Skip to main content
Version: Next

플랫폼

예제

참조

속성

constants

tsx
static constants: PlatformConstants;

플랫폼과 관련된 모든 공통 및 특정 상수를 포함하는 객체를 반환한다.

속성:

이름
타입선택적설명
isTestingboolean아니오
reactNativeVersionobject아니오React Native 버전 정보. 키는 major, minor, patch이며, 선택적으로 prerelease가 포함될 수 있다. 값은 number 타입이다.
Version
Android
number아니오Android 전용 OS 버전 상수.
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 전용 OS 버전 상수.
systemName
iOS
string아니오iOS 전용 OS 이름 상수.

isPad
iOS

tsx
static isPad: boolean;

기기가 iPad인지 여부를 정의하는 불리언 값을 반환한다.

타입
boolean

isTV

tsx
static isTV: boolean;

디바이스가 TV인지 여부를 정의하는 불리언 값을 반환한다.

타입
boolean

isVision

tsx
static isVision: boolean;

디바이스가 Apple Vision인지 여부를 나타내는 불리언 값을 반환한다. Apple Vision Pro (Designed for iPad)를 사용 중이라면 isVisionfalse가 되고, isPadtrue가 된다.

타입
boolean

isTesting

tsx
static isTesting: boolean;

애플리케이션이 테스트 플래그가 설정된 개발자 모드에서 실행 중인지 여부를 정의하는 불리언 값을 반환한다.

타입
boolean

OS

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

현재 운영체제를 나타내는 문자열 값을 반환한다.

타입
enum('android', 'ios')

Version

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

운영체제의 버전을 반환한다.

타입
number
Android

string
iOS

메서드

select()

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

현재 실행 중인 플랫폼에 가장 적합한 값을 반환한다.

파라미터:

이름타입필수 여부설명
configobject아래 config 설명을 참고하세요.

select 메서드는 현재 실행 중인 플랫폼에 가장 적합한 값을 반환한다. 예를 들어 휴대폰에서 실행 중이라면 androidios 키가 우선순위를 가진다. 이 키들이 지정되지 않은 경우 native 키를 사용하고, 마지막으로 default 키를 사용한다.

config 파라미터는 다음과 같은 키를 가진 객체다:

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

사용 예시:

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

const styles = StyleSheet.create({
container: {
flex: 1,
...Platform.select({
android: {
backgroundColor: 'green',
},
ios: {
backgroundColor: 'red',
},
default: {
// 웹과 같은 다른 플랫폼
backgroundColor: 'blue',
},
}),
},
});

이 코드는 모든 플랫폼에서 flex: 1을 적용하고, 안드로이드에서는 배경색을 녹색, iOS에서는 빨간색, 다른 플랫폼에서는 파란색으로 설정한다.

해당 플랫폼 키의 값은 any 타입이므로, 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 />;