实际上我是反应原生应用程序开发的新手。我正在尝试使用数据库连接(AWS Dynamo db)开发一个小的react-native应用程序。我选择一个java作为服务器端语言。我想知道,有没有可能在react-native中导入java类(即从react-native访问java方法)。
感谢。
答案 0 :(得分:3)
是的,您可以使用一些胶水代码。 React Native有一个Native Modules概念,允许您与任何Java代码进行交互。
根据上述链接说明创建原生模块后,您可以使用@ReactMethod
注释修饰模块上的任何方法,以使其在JavaScript中可用:
public class YourDynamoDBModule extends ReactContextBaseJavaModule {
// ...
@ReactMethod
public void arbitraryMethod(string query, Promise promise) {
// do something with your third-party library
Promise.resolve(yourResponse);
}
//...
}
你需要更多的样板(这些都在文档中解释)。一旦到位,您可以通过JavaScript调用它,如下所示:
import { NativeModules } from 'react-native';
NativeModules
.YourDynamoDBModule
.arbitraryMethod('...')
.then(result => {
});
值得注意的是,所有本机模块调用本质上都是异步的,因此如果您需要将数据传递回JavaScript,则需要使用promises(如上所述)或回调。