gpt4 book ai didi

ios - 在 Flutter 中打开原生 UIViewController

转载 作者:IT老高 更新时间:2023-10-28 12:30:49 29 4
gpt4 key购买 nike

我有一个在 Flutter 中开发的应用程序,它有一个 UIViewController 必须在原生 IOS 中实现(没有其他解决方法,这是必须的)

我已经实现了它,它根据第一次测试工作,但我想仔细检查一下你的意见是否还可以,因为我在 Flutter 方面没有那么经验丰富,我怕有点在我的应用导航堆栈中弄得一团糟,将来可能会导致错误

所以,我已经通过 MethodChannel 实现了它。我有一个方法,从“Flutter side”调用。我不会在此处粘贴与 MethodChannel 相关的内容,因为它们很琐碎。

在我的 AppDelegate didFinishLaunchingWithOptions 我添加了这个:

let flutterViewController = FlutterViewController()
self.navigationController = UINavigationController(rootViewController: flutterViewController)
self.navigationController?.isNavigationBarHidden = true

self.window = UIWindow(frame: UIScreen.main.bounds)
self.window.rootViewController = self.navigationController
self.window.makeKeyAndVisible()

我的打开方法是这样的:

private func openNativeUI(result: FlutterResult) {
let sb = UIStoryboard(name: "Main", bundle: nil)
let uiController = sb.instantiateViewController(withIdentifier: "nativeui")

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

result(true)
}

你怎么看?

非常感谢您的任何建议,并提前感谢您的帮助!

最佳答案

在创建跨平台应用程序时使用 Native API 完全没问题,但请确保没有其他方法可以实现您的目标。很多时候(当跨平台引擎/sdk 是新的时)除了使用 native 代码来完成您的功能之外,您别无选择。

不确定您的目标,但跨平台引擎/sdk(例如 Flutter)的常见问题是第三方 SDK/API(例如 Chartboost、Stripe、Twilio) 需要一些时间来转换为您正在使用的引擎/sdk,因此当它不可用时,您别无选择,只能在 native 调用这些 API。

发生的其他问题是某些特定于平台的 API,例如相机、联系人、应用内、GameCenter 等没有随跨平台 SDK 一起提供,或者需要一些时间来获取此类 API 的一些包装器,因此在所有这些情况下,您都可以使用 Native API。

关于ios - 在 Flutter 中打开原生 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56290461/

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