问题标签 [react-native-bridge]

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

ios - 将 React Native 根 UIViewController 作为委托传递时如何访问协议方法

我正在开发一个 iOS 桥以将 .framework SDK 集成到 React Native 应用程序中。

此 SDK 的文档指出,我应该将 UIViewController 作为委托传递给 SDK 将通知其所有输出的框架初始化程序。

由于 React Native 应用程序是在单个 UIViewController 中构建的,因此我已将该根 UIViewController 传递给初始化程序,如下所示:

在 React Native 文档中的 iOS 桥示例之后,我创建了一个单独的模块来处理这个我已经实现了协议方法的地方。

使用此根控制器会引发一些关于 UIViewController 类型不兼容的警告,但应用程序会按预期构建和 SDK 启动。

当 SDK 尝试触发协议方法时会出现问题。我在我的 CustomSDKModule.m 文件中实现了协议方法,该文件具有初始化 SDK 的方法,但它们从不被 SDK 触发。相反,应用程序崩溃并显示以下消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController CustomSDKMethodName:withCaptureType:]: unrecognized selector sent to instance 0x15dd2e8b0'

我想知道这些方法是否应该在应用程序的根 UIViewController 的实现中声明?例如 AppDelegate.m

任何关于我做错或应该做的提示都值得赞赏

0 投票
0 回答
61 浏览

android - Android Native Module:如何从原生 Android Activity 回到 React Native?

我实现了 android 本机桥接模块,在该模块中我从 React Native调用本机SampleActivity 。

通过按下物理后退按钮或从此SampleActivity调用 finish()使整个应用程序退出,而不是返回到原始反应本机活动。怎么回去react native?

类似问题:

  1. https://www.techup.co.in/call-native-android-activity-from-react-native/
  2. https://github.com/facebook/react-native/issues/17250
0 投票
0 回答
23 浏览

swift - 更改方案后反应本机 Bridge 崩溃

我有一个适用于我的主要项目的 Health Kit Bridge,但在更改方案后崩溃。

我收到几个标记未声明标识符的错误,例如:

AppDelegate.m:139:5:使用未声明的标识符“HealthKitBridge”

AppDelegate.m:139:22:使用未声明的标识符“模块”

所以我的问题是,如果所有方案都使用相同的代码库,为什么我的其他方案不能使用这个反应原生桥?

我需要重新生成这些方案吗?

更新:我发现该库没有在方案中调用桥接库。那么如果两个方案都调用同一个 appDelagate.m 文件,我该怎么做呢?

我正在尝试导入此文件。

0 投票
0 回答
46 浏览

java - react-native bridge 位置权限提示两次

我正在使用 react-native 0.59,然后将 API 更新为 29。更改 29,在请求位置许可时,选项列表中的“始终允许”已被删除。

然后,我为位置权限创建了一个桥梁。因为有些文章指出我需要手动列出该选项。

这是工作。但是在调试模式下它会提示一次,但在发布模式下它会提示两次。

在此处输入图像描述

在此处输入图像描述

感谢您的答复!

0 投票
0 回答
40 浏览

react-native - React Native - 在 Javascript 线程中发送和接收事件的最佳方式

我想知道仅在 JS 堆栈中发送和接收事件的最佳方式。正在发出的事件不应该到达 react-native 桥,或者只是我不希望事件到达 android/iOS 堆栈。

我知道使用 NativeEventEmitter,我们可以在 JS 堆栈内发送和接收事件,但不确定这是否会通过反应原生桥传递数据。我想要一种在 JS 堆栈中发送和接收事件的优化方式。

请帮我找到正确的方法。

谢谢。

0 投票
1 回答
68 浏览

react-native - 是否可以用新的 React Native 应用程序替换现有的 React Native 应用程序?

我有一个0. 59版本的 react native 项目,我尝试对0. 60进行重大更新。但我似乎不可能在模拟器上运行该应用程序。所以我产生了创建一个空项目并在其上传输我的代码的想法。有人做过这样的事情吗?

  • 有没有办法将应用商店中的现有应用与新应用链接
0 投票
0 回答
97 浏览

react-native - React Native:UI 停止响应桥接消息

我正在开发一个 react-native 应用程序,我注意到生产构建中有一个奇怪的错误。平均而言,在 7 个客户端安装中,其中一个从一开始就冻结了。

我评论了几乎所有的代码库以丢弃可能的 javascript 错误,我只留下了一个带有计时器的 useEffect:

  • 使用 a 将时间戳写入 logcatconsole.log
  • 设置状态以使用时间戳更新 UI <Text>{timestamp}</Text>

当应用程序挂起时(在 5 或 6 次尝试后),setState 不会更新 UI,无论如何我可以在控制台上看到时间戳。

到目前为止,我已经尝试过:

  • 检查日志,没有明显的错误或崩溃
  • javascript线程似乎还活着,我可以编写一些代码并将一些输出写入logcat。
  • UI 线程似乎还活着,如果我放置一个滚动视图,即使应用程序被冻结,我也可以滚动(我知道滚动在 UI 线程上运行)
  • 我检查了超载 MessageQueue 的桥接消息'react-native/Libraries/BatchedBridge/MessageQueue.js',我认为这里有一个线索:

当 UI 被冻结时,我能够看到 javascript 如何发送 RCTRawText 更新:

但 RCTRawText 更新并未反映在本机视图上。

我还使用了systracefrom android build-tools 来捕获系统跟踪,我发现:

  • 当应用程序正常运行时, UI 线程中会调用Choreographer#doFrame、和。animationtraversaldraw
  • 当应用程序被冻结时,只有调用Choreographer#doFrameanimation。(这让我认为缺少绘图调用)

我知道没有足够的数据来查找错误,但也许有人知道为什么即使消息已发送到网桥也不更新 UI。

很感谢任何形式的帮助

0 投票
1 回答
569 浏览

c++ - What's the difference between bridging a module with C++ or with JSI in React Native?

In React Native it is possible to bring native functionality from Android and iOS in multiple ways. I always thought that all possible ways were limited by platform-related languages like Java/Kotlin and Objective-C/Swift. However, I noticed that it is still possible to bridge native functionality even from C++ (without using JSI). Specifically, I noticed that from react-native-builder-bob it is possible to easily start a package that bridges native modules using C++.

At this point I wonder, but what does JSI introduce that is new if it was already possible to integrate JS with C++? Why should it bring performance improvements over the current solution?

I apologise in advance for my lack of knowledge, but I really couldn't find the answer.

0 投票
0 回答
49 浏览

android - React native Android Native Modules - MantraMFS100 指纹读取器

请帮帮我。如果有任何替代方法可以将 FingerPrint ISOTemplate 存储到服务器数据库或作为文件以进一步匹配,请向我提出任何建议。

我正在尝试开发生物识别考勤应用程序。我有一个 USB 设备 Mantra MFS 100 和 .jar sdk。我正在尝试将 android 本机模块集成到 React Native 中,以通过外部 API 访问和上传指纹数据,以便从任何设备访问和匹配。

目前我能够连接设备,获取设备信息并显示指纹图像。但问题是,当我试图将 ISOTemplage 作为行文件应用程序接近时。

0 投票
2 回答
64 浏览

ios - AVPlayer.addPeriodicTimeObserver 等效于 AVAudioPlayerNode

我正在将使用 AVPlayer 的 react-native 包重构为 AVAudioEngine 和 AVAudioPlayerNode。但是我很困惑如何使用 AVAudioPlayerNode 来打开 AVPlayer.addPeriodicTimeObserver。这个想法是我需要在播放音乐时获取时间数据,因此在这个 addPeriodicTimeObserver 闭包中需要发送间隔,所以在这方面如何在 AVAudioPlayerNode 上使用它,谢谢!