问题标签 [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 投票
1 回答
219 浏览

javascript - 在 electron.js 或 node.js 应用程序中捕获 c++ 本机插件 cout/console 消息

一旦模块构建完成,C++ 原生模块的 std::cout 控制台消息就不会打印在控制台上。

有什么方法可以在控制台上打印运行时 std::cout 消息,然后我们可以使用 node.js 在电子应用程序中捕获这些消息

node.js 如何运行本机模块,它是在与沙盒程序相同的线程上运行还是在不同的线程上运行?

0 投票
1 回答
4237 浏览

react-native - 如何解决测试中的 NativeModule.RNLocalize is null 错误?

我正在使用该包react-native-localize在应用程序中提供本地化。我已经链接了库,它可以在设备上正常运行。

问题:

当我测试一个导入react-native-localize的组件时。我得到错误react-native-localize: NativeModule.RNLocalize is null。为了解决这个空错误,我jest.mock('react-native-localize');在测试文件的顶部调用。但我仍然收到指向NativeModule.RNLocalize is null. 我还提供了包 README中提到的模拟,但无济于事。

问题:

如何解决测试中的 NativeModule.RNLocalize is null 错误?

测试堆栈跟踪:

0 投票
1 回答
195 浏览

objective-c - Objective C - Call Method defined from a Macro

I'm trying to call a Method from Objective-C that has been defined using a Macro which wraps a Swift function. I'm getting the compilation error No visible @interface for 'NearbyMessages' declares the selector '__rct_export__disconnect' in Xcode when I try to call my Method though.

My Swift function looks like this:

The Objective-C code looks like this:

The macro RCT_EXTERN_METHOD (from React's RCTBridgeModule.h) is defined as:

By reading this, upon compilation the Method should be called __rct_export__disconnect, right?

So why is it not possible to use [self __rct_export__disconnect] - How else can I call this method?

0 投票
1 回答
321 浏览

yarnpkg - electron-forge --template=typescript-webpack 无法编译 sqlite3

使用利用sqlite3. 看起来 sqlite3 没有正确重新编译。环顾四周,看到有人推荐 better-sqlite3。这将要求我必须移植 sqlite3 代码(没有 db.serialize 等效项)。还有另一种方法可以让 sqlite3 工作吗?

0 投票
1 回答
997 浏览

node.js - 将本机模块构建为电子应用程序的一部分

我目前正在使用电子、反应、打字稿和 NodeJS 原生模块构建应用程序。我使用提供的样板代码(https://github.com/electron-react-boilerplate/electron-react-boilerplate)启动了应用程序。

我希望将一些本机模块添加到应用程序中,最好将其编写为应用程序中的库。目前我已经编写了一个 C++ 模块来读取一些内存统计信息。通过导入模块,我可以在开发模式下运行时使模块工作,如下所示const native = require('./lib/memmonitor/build/Release/memmonitor.node');'

我遇到的第一个问题是模块需要通过进入director并手动运行来手动构建electron-rebuild。理想情况下,这应该通过运行yarn installyarn electron-rebuild(都在样板 package.json 中定义)触发;然而,这些命令似乎只关心通过 node_modules 包含的本机模块。

我遇到的第二个问题是,在打包应用程序时,节点模块没有包含在最终构建中,导致电子应用程序由于找不到节点模块而无法启动。

是否可以将本地模块构建为应用程序构建的一部分,并将其包含在最终包中,或者为每个自定义本地模块提供单独的存储库是标准的,应用程序是否将库作为依赖项包含在内?

0 投票
1 回答
519 浏览

react-native - 如何将本机模块作为依赖项集成到自定义模块/库中以响应本机

我使用 react-native-create-library 创建了一个模块/库,用于处理自定义设备的特定 ble 程序,并为原生 ble 功能选择了 react-native-ble-manager。由于我没有在我的库中编写任何本机代码,我只是将我的模块导出到 index.js

然后我用 npm 打包了我的库,以便在测试应用程序中进行本地测试。直到这里一切都很好,我可以在测试应用程序中导入和使用我的模块。但是当我尝试初始化 ble 模块时,它失败了,因为它似乎不包含在 NativeModules 中:

[TypeError: null is not an object (evaluating 'bleManager.start')]

我在我的模块的 package.json 中包含了 ble 模块

但是当我签入时:
TestApplication/node_modules/my-module/node_modules
react-native-ble-manager 不存在。

我现在的问题是,是否甚至可以在模块内使用本机模块,如果可以,如何正确执行?

0 投票
0 回答
59 浏览

javascript - 不变违规:RN原生模块不可用

我使用 RN48 中的本机模块为 React-Native 开发了一个库,并且正在手动链接到 RN59 中的一个项目并且工作正常。但是当我将库的对等依赖项升级到 RN62 并自动链接(https://github.com/react-native-community/cli/blob/master/docs/autolinking.md)到 RN62 应用程序(通过 podspec和 pod install),本机模块不可用。图书馆有什么我需要更新的吗?

错误截图

播客文件:

0 投票
0 回答
181 浏览

c++ - Cmake Boost库链接错误LNK1104:无法打开文件'libboost_random-vc142-mt-x64-1_74.lib'

我正在尝试制作使用 cmake 编译 C++ 代码的 node.js 本机插件...

CMakeLists.txt 文件

我正在使用内部依赖于 boost 的 websocketpp 库

在编译时出现此错误:

libboost_random-vc142-mt-x64-1_74.lib 存在于 boost_1_71_0/stage/x64/lib 文件夹
中并且此路径也添加到环境变量中......

0 投票
1 回答
141 浏览

javascript - 如何在 Nodejs VM 中提供源映射

我正在使用以下代码评估javascript捆绑的源代码nodejs

当源代码中有错误时,我会收到这样的错误,因为没有提供源映射

如何为 VM 提供源映射,以便我可以获得正确的文件名而不是evalmachine.<anonymous>

提前致谢

0 投票
0 回答
120 浏览

node.js - 调用本机插件时电子崩溃,该插件使用窗口的 uiautomation 库来检测另一个窗口中的按钮

我有一个本地插件,可以检测缩放会议窗口并在其中找到一些按钮。
该本机插件是使用 NAPI(node-addon-api) 制作的,当我运行它时,它工作正常......(给我那个按钮名称)。

但是,当我尝试在电子中运行该本地插件时,它会使电子应用程序崩溃。

这是检测元素的本机插件 C++ 代码: