问题标签 [react-native-modules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
27 浏览

objective-c - 如何在 iOS 上添加额外的桥接模块?

我在我的React Native应用程序中创建了一个新的本机模块(称为RCTAVAudioSessionModule)。在查看时,AppDelegate我发现了这个代码片段:

我想将我的本机模块添加到extraModules数组中。我试图做这样的事情:

但是,当我尝试从模块调用方法时,我收到一条错误消息:

如何正确添加我的原生模块并在 iOS 上使用它?

0 投票
0 回答
37 浏览

react-native - 用 React Native 包装 Native 项目

我想在 react native 中使用一个复杂的原生项目(https://github.com/SiliconLabs/wireless-xpress),因为我无法重新创建功能,我想尝试将 react native 集成到现有的项目上,但我没有想法如何实现。我已经看到了一些关于如何在 ios 和 android 中创建本机模块的示例,但是这个项目太大了,我无法理解。该项目使用低功耗蓝牙连接到定制硬件上的电路板并通过电话使用终端。

0 投票
1 回答
134 浏览

android - 将 onPictureInPictureModeChanged 结果传递给反应原生模块

我正在尝试使用 react-native 在图片模式下做一些图片。我写了一个反应模块

我需要在 react native 模块中生成类似的东西

有一些方法可以以相同的方式进行,但在 ReactContextBaseJavaModule 内部

0 投票
1 回答
61 浏览

ios - Modul 应该在主线程中显示 modal/UIViewController 但它不能立即工作

我试图从 Swift 模块在我的 React 本机应用程序中呈现 UIViewController 我正在这样呈现它

我得到这个错误: UIApplication.windows must be used from main thread only

好的,我必须将其添加到我的线程中

当我以很小的延迟调用此函数时,它工作正常

或像这样延迟到swift

但是如果我删除延迟,则不会显示此模式。但它应该在那里。我在 swift 的登录中看到了这一点,这证实了我的理论:

PKAddPaymentPassViewController是我的 UIViewController

我不知道如何解决这个问题......

更新

根据第一条评论,我这样做了

好消息是模态会出现但立即关闭我看到打开效果然后关闭效果......

解决方案

  1. 全部在更新部分
  2. 重构 RN 代码原来在这个新的之前打开了另一个 modal。在我打开新模式之前,旧模式没有关闭......所以我更快地关闭旧模式,然后我显示新模式,一切都很好
0 投票
1 回答
110 浏览

reactjs - 材料社区图标未定义

我已经有这个问题很长时间了。我真的希望有人克服了这个问题。

我们已经有一个正在开发的应用程序,但我们决定构建微前端以将一些功能剥离到单独的模块中。现有的应用程序没有这个问题。

我创建了一个带有纯 react-native 的 react native 模块,其中包含一个示例应用程序来测试它使用 expo。代码大部分是从上面提到的现有应用程序中复制过来的,并在此处和那里进行了一些更改。该模块使用 react-native-paper。

示例应用程序在 ios 和 android 上运行良好,直到我从模块中添加一个使用图标的组件。

例如,在我的模块中,存在以下代码:

我也试过:

和:

(这个给出了一个不同的错误):无法从/../../../../../src/models/FormModel.tsx解析模块@expo/vector-icons/MaterialCommunityIcons:@expo/vector -icons/MaterialCommunityIcons 在项目或以下目录中找不到:../node_modlues 或 ../../../../node_modules

这来自我的示例代码,其中正在调用带有图标的模块代码,并带有指定结果的注释:

从任何组件添加 react-native-paper 中的图标后,我开始收到此错误:

渲染错误 - undefined 不是一个对象(评估 '_$$_REQUIRE(_dependencyMap[6], "react/jsx-runtime").jsx')在 react-native-paper 内的 MaterialCommunitIcons

未捕获的错误 - 需要未知模块“未定义”。如果您确定该模块存在,请尝试重新启动 Metro。您可能还想运行 'yarn' 或 'npm install'

我在 Android 上遇到同样的错误。

我已经尝试在组件中加载字体,但我似乎无法解决这个问题。

请注意,如果我直接从示例文件夹中添加图标,我不会收到任何错误并且图标会呈现

这是我在终端中遇到的错误:

这是我的 package.json:

我的 app.json:

我的 babel.config.ts:

我的 Metro.config.js:

请帮忙!!

0 投票
0 回答
11 浏览

react-native - 使用 remove() 删除 React Native NativeEventEmitters 不起作用

我的案例:我正在连接到第 3 方硬件设备。SDK 是本机的,因此我必须桥接它并为触发的事件创建侦听器以在 RN 端捕获。为了获得一致的 UI,并且由于 SDK 的限制性质,我必须在用户每次使用设备时创建一个新连接(这是他们吹入的东西)。对于每个新连接,我都需要创建一组新的发射器。

我的问题:我注册了一些监听器来监听原生 android 端的事件(第 3 方 SDK 事件)。

对于每个发射器,我将其添加到组件数组中。当我离开屏幕(不是屏幕移除事件,所以我不能依赖 ComponentWillUnmount)时,我会遍历数组并在每个发射器上调用 remove()。

每次访问该页面时,我都会尝试重新创建新的发射器。但是,当我再次访问屏幕时,即使当我将发射器记录到控制台时,旧发射器仍在发射事件,说它为空并且新发射器已创建

示例输出:

"流":[null,{"eventType":"流","key":1}]

功能:

0 投票
0 回答
20 浏览

android - 如何为我的 react native 应用程序创建一个 android 应用程序链接?

我已经为我的 react native 应用程序设置了一个android 应用程序链接...但是每当我点击链接并选择我的应用程序打开它时,系统确实会尝试打开我的应用程序但我的应用程序崩溃了...我已经设置了 android正确链接并且我想在点击链接时启动的活动确实打开了..但是我无法在活动中设置RCTDeviceEventEmitter ...我对如何在这里提供反应上下文感到困惑..所以我创建了ReactContextFetcher.java 中的自定义类,如下所示:

我在由 android 应用程序链接启动的活动中使用此上下文,如下所示:

这就是我在 javascript 中接收此事件的方式:

我究竟做错了什么?为什么当我点击 android 链接时我的应用程序会崩溃?它与我如何使用反应上下文有什么关系吗?