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();
}
}
2 回答
为了从您开始的活动中获得结果,您的模块需要能够访问您的活动参考 .
这有两个解决方案:
但是,请记住,您的模块需要在
ReactPackage
中使用,而ReactPackage
是一个接口,因此如果您需要,可以让您的ReactActivity实现接口(而不是创建新类) .以下是使用
inner class
和实现ReactPackage
的活动的完整工作示例:然后,您可以像这样开始
ReactActivity
:得到这样的结果:
并在React中使用它:
也许我不明白你想要做什么..但是你不能只是构建一个本机模块,让你的React Native应用程序调用该函数来完成将数据传递给你的本机代码吗?
假设你有一个应用程序的React Native部分,它将用户的名字和姓氏作为输入,然后点击提交 .
您可以正常编写RN javascript:将2个TextInput字段及其值映射到您的状态,使用带有onPress处理程序的Button . 在onPress处理程序中,您将调用Native Module并传递参数
您的本机模块看起来像这样: