gpt4 book ai didi

ios - 使用 react-native-navigation 将 React Native 应用程序与现有的 iOS 应用程序集成

转载 作者:行者123 更新时间:2023-11-28 07:46:02 25 4
gpt4 key购买 nike

我有一个使用 react-native-navigation 的 React Native 项目。我已经在 swift 中将这个项目与现有的原生 iOS 应用程序集成在一起。正如 wix 的文档所说,这行代码将通过 native iOS 应用程序:

let jsCodeLocation = RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index", fallbackResource: nil)
RCCManager.sharedIntance().initBridge(withBundleURL: jsCodeLocation)

问题是,通过调用这行代码,应用程序打开了启动屏幕,而我需要通过按下 native 应用程序中的按钮打开 react native 应用程序并将其作为 viewController 推送,但调用这行代码打开再次启动屏幕,没有任何后退按钮返回 native iOS 应用程序。此外,如果我删除这行代码并改为使用下面的代码,那么我会崩溃。我也尝试使用此代码作为提到的 react-native 集成文档,但它不适用于 react-native-navigation:

let jsCodeLocation = RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index", fallbackResource: nil)

let bridge = RCTBridge(bundleURL: jsCodeLocation, moduleProvider: nil, launchOptions: nil)
let rootView = RCTRootView(bridge: bridge, moduleName: "MyHotels", initialProperties: nil)


let rnViewController = UIViewController()
rnViewController.view = rootView

self.navigationController?.pushViewController(rnViewController, animated: true)

上面的代码以我希望的方式打开 native react ,但它会因以下错误而崩溃:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'A bridge instance is required to create an RCTRootView'

我的 react-native-navigation 版本是:“^1.1.457”

最佳答案

目前,RNN 专为“先 react native ”的应用程序而设计,或者您称之为未开发的 RN 应用程序;引导 API(在 v1 和 v2 中)显示启动画面,但即使您可以解决它 - 这也行不通。有计划在 native 端公开 RNN API,以便像您这样的应用程序能够利用其所有功能。我不知道这什么时候可用,但它在 v2 的路线图中。

也就是说,如果您已经有一个原生应用程序并且想要集成一个 React 原生 View ,那么您实际上并不需要 RNN。是的,RNN 提供了一些非常酷和方便的功能,但您可以完全控制您的 native 屏幕( View Controller ),因此您可以根据需要自行自定义它们。

参见 this guide有关如何将 React Native 与现有应用集成的更多信息。我不确定你为什么会收到这个错误,因为它基本上是你应该实现它的方式,也许由于某种原因它无法创建桥接对象。您可以简化它并通过 initWithBundleURL 创建一个没有桥的 RCTRootView(在这种情况下,RN 在内部创建桥),但是如果您计划有多个 RN 屏幕和/或 View 之间也相互通信 - 您将需要有一个所有 Root View 共享的桥接实例;这实际上也是 RNN 所做的。

关于ios - 使用 react-native-navigation 将 React Native 应用程序与现有的 iOS 应用程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51007963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com