as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

Vega OS的平台特定代码

Vega OS的平台特定代码

在为Vega OS构建应用时,您可能需要编写仅在Vega上运行的特定于平台的代码,或者整理代码以处理平台之间的差异。本指南介绍如何在Vega OS上使用特定于平台的扩展和平台模块。

平台模块

适用于Vega的React Native提供了一个平台模块,用于检测您的应用在其上运行的平台。在Vega OS上,您可以使用这个模块来执行特定于Vega的代码。

Platform.OS

Platform.OS属性返回一个代表当前平台的字符串。注意:​ 在Vega OS上,Platform.OS返回'kepler'

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

const styles = StyleSheet.create({
  container: {
    flex: 1,
    ...Platform.select({
      kepler: {
        backgroundColor: 'blue',
      },
      ios: {
        backgroundColor: 'red',
      },
      android: {
        backgroundColor: 'green',
      },
    }),
  },
});

Platform.select()

Platform.select() 方法返回您当前运行所在平台的值。使用kepler作为特定与Vega的值的密钥。

import { Platform } from 'react-native';

const Component = Platform.select({
  kepler: () => require('ComponentKepler'),
  ios: () => require('ComponentIOS'),
  android: () => require('ComponentAndroid'),
})();

特定于平台的扩展

当您的特定于平台的代码较为复杂时,应将代码拆分为单独的文件。React Native将检测文件何时具有特定于平台的扩展名,并在需要时从其他组件加载相关的平台文件。

对于Vega OS,使用.kepler扩展名。

示例

假设您的项目中有以下文件:

Button.kepler.tsx
Button.ios.tsx
Button.android.tsx

当您导入组件时。

import Button from './Button';

React Native将根据运行所在平台自动选择正确的文件:

  • 在Vega OS上: Button.kepler.tsx已加载
  • 在iOS上: Button.ios.tsx is loaded
  • 在Android 14上: Button.android.tsx已加载

支持的扩展

您可以将.kepler扩展名用于以下文件类型:

  • .kepler.tsx - 带有JSX的TypeScript
  • .kepler.ts - TypeScript
  • .kepler.jsx - 带有JSX的JavaScript
  • .kepler.js - JavaScript

树摇和特定于平台的代码

Vega OS上完全支持特定于平台的树摇。这意味着,当您构建应用时,Bundler将自动排除其他平台的代码,从而减小您的程序包大小。

工作方式

当您使用特定于平台的文件扩展名(如.kepler.tsx)时,构建系统将:

  1. 在构建过程中检测目标平台
  2. 在Vega OS Bundle中仅包含.kepler文件
  3. 从最终Bundle中排除.ios.android文件
  4. 移除未使用的特定于平台的代码分支

重要注意事项

由于Vega OS在平台系统中注册为kepler,因此必须在特定于平台的文件名中使用kepler关键字(而非vega),才能使摇树正常作用。

正确:

Button.kepler.tsx  ✓
utils.kepler.js    ✓

不正确:

Button.vega.tsx    ✗
utils.vega.js      ✗

最佳实践

  1. 针对显著差异使用特定于平台的文件: 如果不同平台之间的实现有很大差异,请使用扩展名为.kepler的单独文件。

  2. 针对细微差别使用Platform.select(): 对于样式或简单条件逻辑等小变化,请在单个文件中使用Platform.select()Platform.OS检查。

  3. 在公共文件中保留共享逻辑: 将与平台无关的逻辑提取到没有平台扩展的共享文件中,以最大限度地重复使用代码。

  4. 利用树摇: 使用特定于平台的扩展,确保您的Vega OS Bundle仅包含相关代码,从而提高性能并减小Bundle大小。

其他资源

有关特定于React Native平台代码模式的更多信息,请参阅有关特定于平台代码的React Native文档(仅提供英文版)。


Last updated: 2026年1月13日