问题标签 [native-module]

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 回答
51 浏览

java - 如何在 react-native 中将 Java 侦听器库应用于 android 本机模块?

原始代码是在 android studio 中编写的“Temi SDK”代码。它包含 Java 监听器函数和实现监听器的函数覆盖,我添加监听器函数的代码和实现监听器的函数覆盖

结果是侦听器功能导致覆盖功能一直有效。

我尝试将此侦听器用作本机模块,以在 react-native 应用程序中使用我的侦听器函数的本机模块代码和来自侦听器的函数覆盖。我不确定“LifecycleEventListener”是否可用于添加 java 监听器,如 android studio 。结果是 LifecycleEventListener 的“onHostResume”中的侦听器功能在我打开应用程序时仅工作一次。

我是否误解了如何使用 LifecycleEventListener?如何将 Java 侦听器功能用作 android 本机模块?

0 投票
0 回答
22 浏览

android - 如何将 aar 库集成到 React Native 中的原生模块?

我需要将 aar 库集成到我的本机模块中。所以,我创建了包的结构create-react-native-module,然后我创建了新文件夹libs并添加implementation fileTree(dir: "libs", include: ["*.aar"])build.gradle我的包中

截屏

然后我将我的课程从我的 aar 导入到我的模块中。它工作正常。构建没有错误:

截屏

但是当我在测试应用程序中导入这个类时MainApplication.java,我得到一个错误:

截屏

截屏

我错过了什么?请帮帮我!谢谢。

0 投票
0 回答
19 浏览

react-native - React Native - 原生模块与 JS 性能

我们需要在我们的应用程序中进行更快的价格计算。目前我们在 JS 中迭代产品项目并计算每个产品项目的价格。我在想也许本机模块可以用于更快的速度。但好像不像?

当我使用 performance.now() 测试一个简单的 C++ 本机模块时,它比 JS 等效模块要慢。它只是一个 20 次乘法迭代的 for 循环。

我想在使用本机模块时会有某种开销(JSON 解析?)。

首先我尝试使用基于 promise 的RCT_EXPORT_METHOD方式,第一次执行大约需要15ms

然后我尝试RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD了,但它仍然比 JS 慢。第一次执行大约需要0.4 毫秒。

JS第一次执行大约需要0.0025 毫秒。

仅用于迭代和计算价格的本机模块是一个坏主意/它不会比 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 回答
23 浏览

javascript - 什么是“原生模块工具”?帮助新手决定是否有必要(NodeJS 安装)

我刚开始我的 NodeJS 课程,讲座是在 NodeJS 版本 10 时录制的(在 mac 上)。我在Windows上,现在是16版。讲座不包含安装屏幕的这个页面:

安装向导截图

摘要:我不知道我是否想要原生模块,或者它们是什么——但我不想要巧克力味。

我已经完成了我的研究,但我仍然无法在任何地方为我解决以下问题。

1.我的问题:这些原生模块
有多重要?我需要它们吗?或者你推荐他们,为什么?

2.Chocolatey:
出于兴趣,也许你可以告诉我为什么NodeJS 将原生模块和Chocolatey捆绑在一起?

我已经决定我不想要巧克力(没问题,如果我决定安装“工具”,那么我会去 GitHub 并手动安装它们,如屏幕截图中所述。)

我不想要巧克力的原因是:根据我的研究,我认为我不需要巧克力,而且我已经看到卸载巧克力可能会给我带来一两个问题,所以我会一起避免它 - 但我认为我d 在旁边提到这一点,因为也许有人知道将它们捆绑在一起的一个非常正当的理由,这会改变我的想法。

非常感谢 Stack Overflow 社区。