android - 如何在 iOS 上注册 React Native 模块

标签 android ios react-native

我在 iOS 上遇到了 React Native 模块的问题。我在 Objective-C 中编写了一个模块,并使用 RCT_EXPORT_MODULE(@"tracker"); 导出模块并将其公开给 React Native。但是,当我打印出 NativeModules 的内容时,它不包含该模块。

import { NativeModules } from 'react-native';
console.log("Native modules:", NativeModules);

我还用 Java (Android) 编写了一个类似的模块,而且效果很好。但是,对于 Android 模块,我知道你必须在 MainActivity 类中注册它们。我想我错过了与 iOS 类似的东西,但在 React Native 文档中找不到它。

如果有人能帮助我,我将不胜感激。

最佳答案

在 iOS 模块上是自动注册的。 桥通过查询所有实现 RCTBridgeModule 协议(protocol)的类来实现这一点。

如果您没有看到您的模块,这意味着某处缺少某些东西。

一种可能是您的 ObjC 类未编译为应用程序目标的一部分。 在这种情况下,打开 Xcode 并检查您的 {your_module}.m 是否属于您应用的目标。

来自 F8 sample appF8Scrolling 模块示例:

enter image description here

关于android - 如何在 iOS 上注册 React Native 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38048632/

相关文章:

reactjs - React Native JS 调试/热重载在物理设备上不起作用

android - 有没有办法通过代码在Android设备上模拟点击屏幕?

android - Firebase 身份验证使用谷歌登录失败

ios - Xcode 7.3 : import Module displayed with strikethrough

iphone - 按下取消时显示警报 View 并保持在同一 View Controller 上

react-native - 标题中未显示 native 基础图标

javascript - 在 React Native 中登录凭据无效时如何显示警报消息?

android - ReSTLet 无法通过 Android 获取数据

Android 应用程序适用于 Eclipse 模拟器,但 Play 商店说我的设备不兼容

ios - 移动 subview 时移动父 View - Objective C