我已经使用 iOS 有一段时间了,我正在体验 React Native。我遇到的一个障碍是如何将我的 gRPC 端点合并到 React Native 中,或者如果这从根本上是可能的。我尝试简单地从 gRPC 添加生成的 node.js 代码,但无济于事。
我得到的最后一个答案是去年在这里。
我已经使用 iOS 有一段时间了,我正在体验 React Native。我遇到的一个障碍是如何将我的 gRPC 端点合并到 React Native 中,或者如果这从根本上是可能的。我尝试简单地从 gRPC 添加生成的 node.js 代码,但无济于事。
我得到的最后一个答案是去年在这里。
Node.js gRPC 库使用用 C++ 编写的本机扩展来完成大部分工作。React Native 文档中的Linking Libraries页面似乎表明这样的库可以在 iOS 上使用,只要您直接使用rnpm工具将其链接到您的应用程序即可。
或者,您可以按照React Native 文档中的Native Modules指南使用Objective C gRPC 库。
我不确定是否应该复制自己的答案,因此,请在以下位置查看潜在的纯 JavaScript 解决方案:
也许以上可以减轻必须链接本机代码并且仍然是跨平台的。
我正在研究 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
在撰写本文时,Improbable Engineering 的 gRP-Web无法与 React Native 一起使用。
相反,您必须使用React Native Native Modules并在 Java、Kotlin、Objective-C 和/或 Swift 中构建本机模块。
你会:
例如,如果您在 iOS/Swift 上构建,则需要执行以下操作:
Reat Native <-> ObjC Bridge <-> Swift <-> gRPC
在 Android 上它会是这样的:
React Native <-> Android Java
我已经编写了一个教程,用于在 iOS 上使用 React Native 构建 gPRC 客户端。我希望它会有所帮助。
还有一个用于使用 Kotlin 为 React Native 编写本机模块
iOS/Objective-C和Android/Java包含在 React Native 文档中