as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
在为Vega OS构建应用时,您可能需要编写仅在Vega上运行的特定于平台的代码,或者整理代码以处理平台之间的差异。本指南介绍如何在Vega OS上使用特定于平台的扩展和平台模块。

平台模块

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

Platform.OS

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

Platform.select()

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

特定于平台的扩展

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

示例

假设您的项目中有以下文件:
当您导入组件时。
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),才能使摇树正常作用。 正确:
不正确:

最佳实践

  1. 针对显著差异使用特定于平台的文件:如果不同平台之间的实现有很大差异,请使用扩展名为.kepler的单独文件。
  2. 针对细微差别使用Platform.select():对于样式或简单条件逻辑等小变化,请在单个文件中使用Platform.select() 或Platform.OS检查。
  3. 在公共文件中保留共享逻辑:将与平台无关的逻辑提取到没有平台扩展的共享文件中,以最大限度地重复使用代码。
  4. 利用树摇:使用特定于平台的扩展,确保您的Vega OS Bundle仅包含相关代码,从而提高性能并减小Bundle大小。

其他资源

有关特定于React Native平台代码模式的更多信息,请参阅有关特定于平台代码的React Native文档(仅提供英文版)。
最后修改于 2026年10月26日