Platform
範例
參考
屬性
constants
tsx
static constants: PlatformConstants;
回傳一個物件,其中包含所有可用的通用和特定於平台的常數。
屬性
名稱 | 類型 | 選填 | 描述 |
---|---|---|---|
isTesting | boolean | 否 | |
reactNativeVersion | object | 否 | 關於 React Native 版本的資訊。鍵為 major 、minor 、patch ,可選的 prerelease ,值為 number 。 |
版本 Android | number | 否 | 特定於 Android 的作業系統版本常數。 |
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 的作業系統版本常數。 |
systemName iOS | string | 否 | 特定於 iOS 的作業系統名稱常數。 |
isPad
iOS
tsx
static isPad: boolean;
回傳一個布林值,定義裝置是否為 iPad。
類型 |
---|
boolean |
isTV
tsx
static isTV: boolean;
回傳一個布林值,定義裝置是否為電視。
類型 |
---|
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
(任何)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: {
// other platforms, web for example
backgroundColor: 'blue',
},
}),
},
});
這將使容器在所有平台上都具有 flex: 1
,在 Android 上具有綠色背景顏色,在 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 />;