问题标签 [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.
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
任何关于我做错或应该做的提示都值得赞赏
android - Android Native Module:如何从原生 Android Activity 回到 React Native?
我实现了 android 本机桥接模块,在该模块中我从 React Native调用本机SampleActivity 。
通过按下物理后退按钮或从此SampleActivity调用 finish()使整个应用程序退出,而不是返回到原始反应本机活动。怎么回去react native?
类似问题:
swift - 更改方案后反应本机 Bridge 崩溃
我有一个适用于我的主要项目的 Health Kit Bridge,但在更改方案后崩溃。
我收到几个标记未声明标识符的错误,例如:
AppDelegate.m:139:5:使用未声明的标识符“HealthKitBridge”
和
AppDelegate.m:139:22:使用未声明的标识符“模块”
所以我的问题是,如果所有方案都使用相同的代码库,为什么我的其他方案不能使用这个反应原生桥?
我需要重新生成这些方案吗?
更新:我发现该库没有在方案中调用桥接库。那么如果两个方案都调用同一个 appDelagate.m 文件,我该怎么做呢?
我正在尝试导入此文件。
react-native - React Native - 在 Javascript 线程中发送和接收事件的最佳方式
我想知道仅在 JS 堆栈中发送和接收事件的最佳方式。正在发出的事件不应该到达 react-native 桥,或者只是我不希望事件到达 android/iOS 堆栈。
我知道使用 NativeEventEmitter,我们可以在 JS 堆栈内发送和接收事件,但不确定这是否会通过反应原生桥传递数据。我想要一种在 JS 堆栈中发送和接收事件的优化方式。
请帮我找到正确的方法。
谢谢。
react-native - 是否可以用新的 React Native 应用程序替换现有的 React Native 应用程序?
我有一个0. 59版本的 react native 项目,我尝试对0. 60进行重大更新。但我似乎不可能在模拟器上运行该应用程序。所以我产生了创建一个空项目并在其上传输我的代码的想法。有人做过这样的事情吗?
- 有没有办法将应用商店中的现有应用与新应用链接
react-native - React Native:UI 停止响应桥接消息
我正在开发一个 react-native 应用程序,我注意到生产构建中有一个奇怪的错误。平均而言,在 7 个客户端安装中,其中一个从一开始就冻结了。
我评论了几乎所有的代码库以丢弃可能的 javascript 错误,我只留下了一个带有计时器的 useEffect:
- 使用 a 将时间戳写入 logcat
console.log
- 设置状态以使用时间戳更新 UI
<Text>{timestamp}</Text>
。
当应用程序挂起时(在 5 或 6 次尝试后),setState 不会更新 UI,无论如何我可以在控制台上看到时间戳。
到目前为止,我已经尝试过:
- 检查日志,没有明显的错误或崩溃
- javascript线程似乎还活着,我可以编写一些代码并将一些输出写入logcat。
- UI 线程似乎还活着,如果我放置一个滚动视图,即使应用程序被冻结,我也可以滚动(我知道滚动在 UI 线程上运行)
- 我检查了超载 MessageQueue 的桥接消息
'react-native/Libraries/BatchedBridge/MessageQueue.js'
,我认为这里有一个线索:
当 UI 被冻结时,我能够看到 javascript 如何发送 RCTRawText 更新:
但 RCTRawText 更新并未反映在本机视图上。
我还使用了systrace
from android build-tools 来捕获系统跟踪,我发现:
- 当应用程序正常运行时, UI 线程中会调用
Choreographer#doFrame
、和。animation
traversal
draw
- 当应用程序被冻结时,只有调用
Choreographer#doFrame
和animation
。(这让我认为缺少绘图调用)
我知道没有足够的数据来查找错误,但也许有人知道为什么即使消息已发送到网桥也不更新 UI。
很感谢任何形式的帮助
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.
android - React native Android Native Modules - MantraMFS100 指纹读取器
请帮帮我。如果有任何替代方法可以将 FingerPrint ISOTemplate 存储到服务器数据库或作为文件以进一步匹配,请向我提出任何建议。
我正在尝试开发生物识别考勤应用程序。我有一个 USB 设备 Mantra MFS 100 和 .jar sdk。我正在尝试将 android 本机模块集成到 React Native 中,以通过外部 API 访问和上传指纹数据,以便从任何设备访问和匹配。
目前我能够连接设备,获取设备信息并显示指纹图像。但问题是,当我试图将 ISOTemplage 作为行文件应用程序接近时。
ios - AVPlayer.addPeriodicTimeObserver 等效于 AVAudioPlayerNode
我正在将使用 AVPlayer 的 react-native 包重构为 AVAudioEngine 和 AVAudioPlayerNode。但是我很困惑如何使用 AVAudioPlayerNode 来打开 AVPlayer.addPeriodicTimeObserver。这个想法是我需要在播放音乐时获取时间数据,因此在这个 addPeriodicTimeObserver 闭包中需要发送间隔,所以在这方面如何在 AVAudioPlayerNode 上使用它,谢谢!