Flutter如何集成到已有iOS工程上
要将Flutter整合到已有的iOS项目中,你需要按照以下步骤操作:
- 确保你的macOS上安装了最新版本的Xcode。
- 安装Flutter SDK,并确保
flutter
命令在终端可用。 - 打开或创建一个iOS项目,并在项目根目录下执行以下命令来创建一个
Flutter模块
:
flutter create --template module my_flutter_module
- 打开你的iOS项目的
.xcworkspace
文件,并将生成的my_flutter_module
文件夹拖入项目导航器中。 - 在iOS项目中,打开
AppDelegate.swift
或AppDelegate.m
文件,并添加以下代码来设置Flutter引擎并运行Flutter模块:
import UIKit
import Flutter
@UIApplicationMain
class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
let flutterEngine = FlutterEngine(name: "my flutter engine")
flutterEngine.run()
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
- 在
my_flutter_module
目录下,打开lib/main.dart
文件,并添加你的Flutter界面代码。 - 在iOS项目中,找到你想要从Flutter显示内容的视图控制器,并添加一个
FlutterView
实例或者使用FlutterViewController
。例如:
import UIKit
import Flutter
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let flutterEngine = (UIApplication.shared.delegate as! AppDelegate).flutterEngine
let flutterView = FlutterView(engine: flutterEngine!, frame: self.view.bounds, viewIdentifier: "flutterView")
self.view.addSubview(flutterView)
}
}
- 构建并运行你的iOS项目,确保Flutter模块按预期工作。
注意:确保你的Flutter模块版本与你的主iOS项目使用的Flutter SDK版本相匹配。如果不匹配,可能会导致兼容性问题。
评论已关闭