플랫폼
예제
참조
속성
constants
tsx
static constants: PlatformConstants;
플랫폼과 관련된 모든 공통 및 특정 상수를 포함하는 객체를 반환한다.
속성:
이름 | 타입 | 선택적 | 설명 |
---|---|---|---|
isTesting | boolean | 아니오 | |
reactNativeVersion | object | 아니오 | 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)를 사용 중이라면 isVision
은 false
가 되고, isPad
는 true
가 된다.
타입 |
---|
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;
현재 실행 중인 플랫폼에 가장 적합한 값을 반환한다.
파라미터:
이름 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
config | object | 예 | 아래 config 설명을 참고하세요. |
select
메서드는 현재 실행 중인 플랫폼에 가장 적합한 값을 반환한다. 예를 들어 휴대폰에서 실행 중이라면 android
와 ios
키가 우선순위를 가진다. 이 키들이 지정되지 않은 경우 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 />;