一、工程依赖
1)在 iOS 工程同级目录上创建 flutter_module 独立的项目。
$ flutter create -t module flutter_module2)在 iOS 项目的 Podfile 中添加以下代码,给工程 target 配置 flutter 相关的 pods。
target "Demo" do flutter_application_path = '../flutter_module' load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb') install_all_flutter_pods(flutter_application_path) pod 'AFNetworking' end3)打开 flutter_module 的 pubspec.yaml,添加依赖 packages。
dependencies: flutter: sdk: flutter # ^ 表示适配和当前大版本一致的版本;~ 表示适配和当前小版本一致的版本 sqflite: ^2.4.2 provider: ^6.1.54)进入 flutter_module 目录,获取 Packages 依赖。
$ flutter packages get5)在 iOS 工程目录上执行 pod install ,完成之后就可以在 iOS 工程中看到 flutter 及依赖库的Framework 和源码。
$ pod install如果将 iOS 工程和 flutter_module 拷贝到其他目录下,编译时会报文件路劲错误,可以执行4、5重新构建。
二、页面展示
1)iOS - 通过 FlutterEngineGroup 创建多引擎页面。
static FlutterEngineGroup *engineGroup = [[FlutterEngineGroup alloc] initWithName:@"EngineGroup" project:nil]; - (FlutterViewController *)createFlutterVC { FlutterEngine *engine = [engineGroup makeEngineWithEntrypoint:nil libraryURI:nil initialRoute:@"/HomePage"]; FlutterViewController *flutterVC = [[FlutterViewController alloc] initWithEngine:engine nibName:nil bundle:nil]; return flutterVC }2)flutter - 在应用入口初始化页面路由。
import 'dart:ui'; import 'package:flutter/material.dart'; MaterialApp( title: 'Application', initialRoute: PlatformDispatcher.instance.defaultRouteName, routes: { '/HomePage': (context) => const HomePage(), } );