跳到主要内容
新架构实战课 实操 + 基建 + 原理全维度包揽,抢先掌握 React Native 新架构精髓 立即查看 >

多平台支持

React Native不仅适用于 Android 和 iOS - 还有社区支持的项目将其应用于其他平台,例如:

  • React Native Windows - React Native 支持 Microsoft Universal Windows Platform (UWP) 和 Windows Presentation Foundation (WPF)
  • React Native DOM - 一个实验性的、全面的 React Native 到 web 的端口。(不要与React Native Web混淆,两者目标不同)
  • React Native Desktop - 一个旨在通过 Qt 的 QML 将 React Native 带到桌面的项目。React Native Ubuntu的一个分支,已不再维护。
  • React Native macOS - 针对 macOS 和 Cocoa 的实验性 React Native 分支
  • React Native tvOS - 为 Apple tvOS 适配 React Native
  • alita - 一个实验性的、综合性的 React Native 到微信小程序的端口
  • Proton Native - React Native 的封装器,使用 Qt 面向 Linux、MacOS 和 Windows

创建你自己的 React Native 平台

目前,从头开始创建 React Native 平台的过程并没有很好的记录——即将到来的全新架构(Fabric)的目标之一是使平台的维护更容易。

打包

从 React Native 0.57 开始,你现在可以使用 React Native 的 JavaScript 打包器Metro注册你的 React Native 平台。这意味着你可以将--platform example传递给npx react-native bundle,它会查找带有.example.js后缀的 JavaScript 文件。

要将你的平台注册到 RNPM,模块名称必须与以下模式之一匹配:

  • react-native-example - 它会搜索所有以react-native-开头的顶级模块
  • @org/react-native-example - 它会在所有范围内搜索以react-native-开头的模块
  • @react-native-example/module - 它会在名称以@react-native-开头的范围内搜索所有模块

你还必须在package.json中设置一些内容,如下所示:

{
"rnpm": {
"haste": {
"providesModuleNodeModules": ["react-native-example"],
"platforms": ["example"]
}
}
}

"providesModuleNodeModules"是一组将被添加到 Haste 模块搜索路径的模块,"platforms"则是一组将作为有效平台添加的平台后缀。