如何在 React Native 中创建 Android 即时应用程序?
Posted
技术标签:
【中文标题】如何在 React Native 中创建 Android 即时应用程序?【英文标题】:How to create Android instant app in React Native? 【发布时间】:2021-10-11 19:11:26 【问题描述】:互联网上似乎没有任何示例、教程或指南可用于使用 react native 创建 android 即时应用。
我有一个现有的 react 原生应用,我想创建一个 Android 即时应用。在 react native 中创建的现有应用程序位于目录 app 中,而我本地创建的即时应用程序位于目录 instantapp 中。我可以在 Android Studio 中将这个 Instantapp 作为一个 Instant App 运行,它所做的只是在一个空白屏幕上显示一个文本“Hello Instant App”。
我可以编写 Android 原生代码来为这个 Instantapp 原生添加更多 ui 和功能,但我想通过原生反应和使用 javascript 而不是编写原生 Android 代码来做到这一点。我该怎么做?
【问题讨论】:
【参考方案1】:我会看看Integration with Existing Apps,我敢打赌,你需要创建一个本质上是另一个反应原生应用程序,并使用单独的 AppRegistry 调用。然后将 ReactRootView 集成到免安装应用中。
我在这里可能完全错了。但这是我会尝试的......如果你成功,请发布。我很想在我的一款应用中尝试一下。
【讨论】:
【参考方案2】:用相同的包名创建一个新的 react native 应用,然后为 Instant 应用配置 android manifest 和 gradle 文件。虽然它是一个新的代码库,但这很有效。
【讨论】:
这是我的想法,但是,在这种情况下,您打算如何维护即时应用程序?如果主应用发生变化,如何在免安装应用中进行更新。 是的,这可能会造成一些不必要的维护负担。想到的一种方法是您可以创建可用于主应用程序和即时应用程序的模块。更新模块将更新这两个应用程序。即时应用程序也可以是非常独特的东西,不需要主应用程序中的任何东西。归根结底,免安装应用应该是超轻量级的,只是让用户下载主应用的一个钩子。【参考方案3】:您需要手动创建一个 Catalyst 实例并传递模块、加载 JS 包并放置一个 ReactView。现在,考虑到性能损失和包大小(您必须先启动 RN,并且必须在本机即时包中加载 RN,以及您需要的任何库),这听起来不是一个好主意。
【讨论】:
以上是关于如何在 React Native 中创建 Android 即时应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过@react-native-community/slider 在android中创建垂直滑块?
如何在 react-native (iOS) 中创建离散滑块?