问题标签 [react-native-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 投票
2 回答
2895 浏览

android - 在 react-native 中运行 android 后台任务

我想在我的 android 应用程序中创建一种功能,即使他关闭了应用程序,也可以在每个时间段内react-native将我的用户发送到服务器!geolocation所以可能这意味着我必须运行一些任务,比如从NativeModule.(如果你有的话,你可以推荐更好的解决方案)在 Os(android) 上运行的任务。

但是在花了很多时间搜索之后,我没有找到任何创建工作或流程的例子,如果应用程序关闭,它可以继续运行。任何机构都可以提供一些线索吗?

更新:我可以这样问我的问题:如果应用程序在本机反应中关闭,我如何运行一个进程以保持执行?

0 投票
1 回答
1615 浏览

swift - 如何将反应组件作为本机视图属性传递

我正在尝试使用一些本机 UI 组件和一些 React 组件构建一个 react-native 应用程序。我想要一个本机 ui 组件,它将反应组件作为属性,并将其呈现为子视图。

我经历了制作原生 ui 组件并用于RCT_EXPORT_VIEW_PROPERTY(view, RCTView)获取视图属性的正常过程。

PagedUIViewManager.swift:

PagedUIView.swift:

PagedUIViewManager.m:

PagedUINativeView.js:

用法:

我希望视图显示<ComponentToRender />,但我收到运行时错误“Invariant Violation: 435,PagedView,1,[object Object] is not used as a native method argument”。

0 投票
1 回答
1498 浏览

react-native - 导入反应本机模块 JS 不起作用,但从 NativeModules 导入本机模块可以吗?

导入 react-native 本机模块时。例如从项目中导入js时出现问题

但是使用本机模块导入 RNModule 可以:

有没有其他人经历过这个?

我已经尝试清除所有推荐的缓存以及重建。

我尝试从项目名称react-native-module和文件名中导入rn-module

示例项目: https ://github.com/814k31/TestReactNativeNativeModule

(自述文件中的构建和运行说明)

这是不起作用的导入 https://github.com/814k31/TestReactNativeNativeModule/blob/master/RNApp/App.js#L13

但这一个确实有效。

单击按钮时,它将触发本机Android功能

https://github.com/814k31/TestReactNativeNativeModule/blob/master/rn-module/android/src/main/java/com/reactlibrary/RNModuleModule.java#L18

并且应该Hello World From RNModule出现在屏幕上。

0 投票
0 回答
89 浏览

android - 无法运行原生模块官方示例

我按照文档并尝试从 react native 调用 ToastExample.show() 。但它总是显示 错误

我的代码:

公共类 CustomToastPackage 实现 ReactPackage {

}

}

主应用程序.Java:

ToastExample.js:

在我的屏幕上:

我已经尝试过 run-android 和 ./gradlew clean 很多次了。代码有什么问题?

0 投票
0 回答
214 浏览

android - react-native:如何从 android native 模块中显示的 JS 视图访问 react-native 库

我创建了一个 react-native 应用程序,按下按钮将加载一个 Android Native Module。调用时,本机模块将启动一个 Android 活动,该活动利用 Presentation 类(以及https://github.com/commonsguy/cwac-presentation)来控制第二个监视器显示(chromecast、miracast 等)。我让这一切都很好。

下一阶段是使用本机模块在第二个监视器上显示 react-native 视图,我能够使用 ReactRootView 和 ReactInstanceManager 来实现这一点(https://facebook.github.io/react-native/docs/integration -with-existing-apps)。Android 原生模块从根 react-native 应用程序加载 react-native 视图。

(其中“JsPresentationView”是要显示的 react-native 视图的名称)

当 react-native 视图显示在 Presentation 屏幕上时,有一个 Android 视图显示在移动屏幕上。这使用 RCTDeviceEventEmitter 将事件发送到 react-native 计时器。EG 播放/暂停计时器视图:

(其中 'TogglePlayback' 是要触发到 react-native 视图的事件的名称)

我发现的问题是尝试从 ReactRootView 加载的 react-native 视图访问导入到根 react-native 应用程序的 react-native 库。我可以访问主要的 react-native 库以获取主要的 react-native 功能,但任何其他导入始终返回为 null。例如,我正在尝试使用“react-native-audio-toolkit”通过第二个屏幕显示上的 react-native 视图播放音乐。

抛出此错误: react-native 错误屏幕。 由于 react-native 视图可以访问主 react-native 库,我开始认为这些问题是由我的 native-module 中的 build.gradle 引起的:

(上面的示例目录是 react-native 应用程序的位置,它将从 $rootDir 导入本机模块)

我尝试了对 build.gradle 的许多不同更新,以包含 react-native-audio-toolkit 库,但我不确定这是否是问题的真正根源。有谁知道我是否遗漏了上面的 build.gradle 中的任何内容以将 react-native 库转发到呈现的 react-native 视图?或者,如果我想要实现的目标甚至是可能的?

我相信我可以通过将 react-native 演示视图分离到它自己的 react-native 项目中来解决这个问题——但如果可能的话,我希望将其保留在同一个项目中。

0 投票
1 回答
88 浏览

react-native - React-Native 代码在不导入平台模块的情况下工作,为什么?

我刚刚在我的home/index.js文件中添加了这段代码

但发布到世博会之后。我意识到我没有导入Platform模块。

为什么创建了通知通道并且没有错误抛出?

顺便说一句,我在项目上没有全局变量。

0 投票
1 回答
146 浏览

ios - 使用 RCT_EXPORT_METHOD 语法时,如何修复 Xcode 上的“忽略方法主体之前的分号”错误?

我正在将 React Native 集成到现有的 iOS/Android 项目中。我正在尝试制作一个原生模块来帮助从 React Native 屏幕导航到 iOS 屏幕。我能够创建用于导航的 Android Native Module 以从 React Native 调用 Android 活动。

在为 iOS 编写我的导航本机模块时,Xcode 一直突出显示我的所有 RCT_EXPORT_METHOD() 方法的“方法主体被忽略之前的分号”错误。

我正在使用 Xcode 9.2,React Native 0.59.3。

https://facebook.github.io/react-native/docs/native-modules-ios#docsNav

我一直在关注上面的文档,但我无法弄清楚为什么 Xcode 无法识别语法。我还尝试在 Xcode 9.4 中运行代码并得到相同的“忽略方法主体之前的分号”语法错误。

导航模块.h

导航模块.m

任何帮助,将不胜感激。

0 投票
0 回答
353 浏览

swift - 有没有办法从类的扩展访问函数中的回调?

在 react native 中,我使用 NativeModules 和 RCTResponseSenderBlock 来创建回调。因为回调特定于我在桥中声明的函数,所以我无法从提供所需反馈的扩展中访问它。这是基于 Mapbox Navigation iOS SDK 的示例代码构建的。

我尝试了各种方法来通过扩展类访问回调属性。

navigationViewController 中的回调是“未解析的标识符”

编辑:解决方案是在类的范围内声明回调变量。

0 投票
1 回答
1178 浏览

react-native - 如何在 Jest 中模拟 React Native 原生模块?

我想要类似以下的东西(实际上有效......):

当然,上面的代码实际上并不起作用。我本质上想建立在现有的react-native模拟之上。

0 投票
0 回答
48 浏览

android - React-Native: Render View From Javascript

So I am trying to use AutoCompleteTextView(for android) as a native module in react-native.

I drew inspiration from

https://github.com/nulrich/RCTAutoComplete.

So in the above library the author has defined custom cell for each AutoCompleteDropDownListItem.

I want to achieve something similar for android.

I want do define a callback(similar to renderItem as in FlatList for each DropDownListItem) to make things convenient.

Any help on the same would be highly appreciated.

Thanks.