我发现很多文章都在谈论如何将 react native 集成到现有的 android 应用程序中。但是他们都没有解释如何从反应原生代码中获取结果,以便直接在Java android源代码中使用它。
说明 :我有一个反应本机应用程序,它正在执行特定工作并在弹出窗口中显示结果。我想集成这个应用程序(进行必要的修改),以便能够将此特定结果放入我的 android Java 源代码中,而不是将其显示在反应本机弹出窗口中。
我搜索了所有的互联网,但一无所获。
也许我不明白你想做什么......但是你不能只构建一个原生模块,并让你的 React Native 应用程序在完成后调用该函数以将数据传递给你的原生代码吗?
假设您有一个应用程序的 React Native 部分,它将用户的名字和姓氏作为输入,然后他们点击提交。
您可以像往常一样对 RN javascript 进行编码:有 2 个 TextInput 字段,其值映射到您的状态,以及一个带有 onPress 处理程序的按钮。在 onPress 处理程序中,您将调用本机模块并传递参数
import {
NativeModules
} from 'react-native';
const NativeNameSubmission = NativeModules.NameSubmission;
...
<Button
onPress={() => NativeNameSubmission.submitName(this.state.firstName, this.state.lastName)}
title="Submit"/>
您的本机模块将如下所示:
public class RCTNameSubmission extends ReactContextBaseJavaModule {
public RCTNameSubmission(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "NameSubmission";
}
@ReactMethod
public void submitName(String firstName, String lastName) {
// save the name data for later use
...
// Exit React App
getCurrentActivity().finish();
}
}