android - 在 React Native 项目中使用 java 库的方法是什么?
问题描述
我正在尝试使用 React-Native 来实现一个 Android 应用程序,但我不熟悉 Java。
我创建了一个基本的 React-Native 应用程序,它有一个文本框和一个按钮。当您单击按钮时,它会将文本框值添加到列表中并在屏幕上显示,如下所示。
一切似乎都很好。我读到的关于 react-native 的内容是,它将 javascript 转换为原生(ios、android)代码。第一个问题,这个转换后的代码在哪里?我在文本框中放置了一个占位符,并在reach-native 项目的android 文件夹中搜索占位符文本。但我在 android 文件夹中的任何地方都找不到文本。
我运行react-native run-android
命令及其工作,那么我可以在 android 项目中找到文本框占位符的转换代码在哪里?
最后一个问题是我想使用本机 Java 库来连接特定网关(https://github.com/calimero-project/introduction)。将它集成到 react-native 应用程序的最佳方法是什么?
解决方案
不,ReactNative 不会将 JS 转换为原生代码。它在基于 C 的 Javasript 解释器上运行它。它将渲染函数返回的组件转换为原生视图。至少其中一些。其他的它没有并且使用它自己的替换,所以它不是一个 1:1 的转换——一段文本可能不对应于一个 Android TextView。
有一种方法可以在 RN 到 Java 之间建立有限的桥梁来调用 Java 库。您需要创建一个 ReactNative Java 模块(并且需要在 iOS 端创建一个 Swift/Objective-C 模块)。有关文档,请参阅https://facebook.github.io/react-native/docs/native-modules-android。
推荐阅读
- selenium - 如何维护 selenium 的对象存储库而不是一次又一次地编写它?
- websphere - IBM JDK 抛出错误 0 类 {0} 已编织且尚未以可重新编织模式构建 [Xlint:nonReweavableTypeEncountered]
- boxplot - 如何使用 dc.js 绘制表格列的箱线图
- php - TYPO3 v8。核心类中的覆盖函数
- google-chrome-extension - 我们可以在 chrome 扩展中获取 windows 用户详细信息吗?
- ios - 我正面临与 tokbox 提供的自定义音频驱动程序相关的崩溃
- c++ - x64 转换后的指针截断
- yocto - 如何在 Yocto 中编译配方时运行 shell 脚本
- python - 使用 python 进行线性回归 - 梯度下降错误
- go - 如何使用 SeekToLast 获取最后一个键值