flutter 与原生app混合开发官方有两种开发方式,一种源码集成,另一种是产物集成,各有利弊。我是第一种方式,集成的源码,当然先要集成配置flutter开发环境,如何配置我这里不细说了,不知道的可自行百度、谷歌。
我这里主要是说一下,在使用源码集成方式的步骤细节,因为最开始使用源码集成方式到目前官方已经有所更新,所以之前久的集成方式已经不适用最新的版本,我在网上看的所有的集成方式都是很古老的方法,而我现在按照那些方法集成后,结果项目就报了错。后来根据官网上的步骤才顺利完成:
首先你的电脑要安装了flutter开发环境!
终端进入项目的同级目录,使用如下命令创建一个flutter项目,flutter_module 是项目名称,可自取,
flutter create -t module flutter_module
iOS项目必须要使用pod管理,不知道的自行百度。创建好flutter项目后打开Podfile文件,在最上面添加如下代码,如图所示位置,../flutter_module 就是之前创建的flutter项目的路径:
(注意!要写在 target 'Flutter_Hybrid' do 和 end 的范围外面,如图所示)
flutter_application_path = '../flutter_module'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
然后在 target 'Flutter_Hybrid' do 内部添加(如图所示):
install_all_flutter_pods(flutter_application_path)
下一步,cd 到项目里,再执行一遍 pod install ,如图所示就已经成功集成完毕 :
设置bitcode 为 NO
然后在你需要的contrller里倒入头文件,new 一个FlutterViewController, 就能跳转 flutter界面了:
#import <Flutter/Flutter.h>
FlutterViewController* flutterViewController = [[FlutterViewController alloc] init];
[self.navigationController presentViewController:flutterViewController animated:YES completion:nil];
FlutterViewController 是flutter的控制器,对应的文件就是 lib/main.dart()如图所示:
⚠️重点说明:不要在 Build Phases 里再New Run Script Phase 添加任何的脚本了!
不要在 Build Phases 里再New Run Script Phase 添加任何的脚本了!
不要在 Build Phases 里再New Run Script Phase 添加任何的脚本了!
最新版已经不需要了,添加了会报错!!!
网上一些过时的教程有时候真是坑爹,也不知更新,误导了多少人。
希望能帮助你人少踩坑!