3

我已经使用 iOS 有一段时间了,我正在体验 React Native。我遇到的一个障碍是如何将我的 gRPC 端点合并到 React Native 中,或者如果这从根本上是可能的。我尝试简单地从 gRPC 添加生成的 node.js 代码,但无济于事。

我得到的最后一个答案是去年在这里

4

4 回答 4

5

Node.js gRPC 库使用用 C++ 编写的本机扩展来完成大部分工作。React Native 文档中的Linking Libraries页面似乎表明这样的库可以在 iOS 上使用,只要您直接使用rnpm工具将其链接到您的应用程序即可。

或者,您可以按照React Native 文档中的Native Modules指南使用Objective C gRPC 库。

于 2016-03-24T16:40:00.593 回答
2

我不确定是否应该复制自己的答案,因此,请在以下位置查看潜在的纯 JavaScript 解决方案:

在 iOS React Native 应用中实现 gRPC

也许以上可以减轻必须链接本机代码并且仍然是跨平台的。

于 2018-05-03T02:15:29.337 回答
1

我正在研究 gRPC 生成器工具,它将自动生成 Swift/Java 代理https://github.com/anjmao/rn-grpc-bridge

目前它已经在生成 Swift 一元调用服务。示例https://github.com/anjmao/rn-grpc-bridge/blob/master/examples/dist/book_grpc_pb_service.swift

于 2018-06-29T15:19:30.790 回答
0

在撰写本文时,Improbable Engineering 的 gRP-Web无法与 React Native 一起使用。

相反,您必须使用React Native Native Modules并在 Java、Kotlin、Objective-C 和/或 Swift 中构建本机模块。

你会:

  1. 以设备的本地语言实现 gRPC 客户端,
  2. 使用 React Native 的 Native 模块框架导出它
  3. 通过 React Native 访问原生模块及其 gRPC 方法
  4. 在 React 你的 Native 代码中调用那些导出的方法

例如,如果您在 iOS/Swift 上构建,则需要执行以下操作:

Reat Native <-> ObjC Bridge <-> Swift <-> gRPC

在 Android 上它会是这样的:

React Native <-> Android Java

我已经编写了一个教程,用于在 iOS 上使用 React Native 构建 gPRC 客户端。我希望它会有所帮助。

还有一个用于使用 Kotlin 为 React Native 编写本机模块

iOS/Objective-CAndroid/Java包含在 React Native 文档中

于 2021-12-04T13:59:38.123 回答