gRPC on React Native

gRPC on React Native

本文关键字:Native React on gRPC      更新时间:2023-09-26

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

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

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

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

我不确定是否应该重复我自己的答案,所以,请看一看潜在的纯JavaScript解决方案:

在iOS React Native应用中实现gRPC

也许以上内容可以简化链接本机代码的过程,并且仍然是跨平台的。

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

目前,它已经在生成Swift Unary呼叫服务。实例https://github.com/anjmao/rn-grpc-bridge/blob/master/examples/dist/book_grpc_pb_service.swift

在撰写本文时,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中调用那些导出的方法

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

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

在安卓系统上,它将是这样的:

React Native <-> Android Java

我已经为在iOS上的React Native中构建gPRC客户端写了一个教程。我希望它有帮助。

一个用于使用Kotlin 为React native编写本地模块

React Native文档

涵盖了iOS/Objective-C和Android/Java