之前一直知道闲鱼集成了flutter,今天有时间集成了一下,网上的文章方向是对的,flutter_boost也更新了多个版本,大多老旧方法已不适用,将具体步骤流程记录下来:
本文参照了一些网上教程及方法,感谢大神们的分享,本文Github:https://github.com/gaolong1314/CWFlutter
阅读本文需注意
1,文档中,出于简便,将DemoRouter中的跳转动画设置为了YES,其可以在exts字典中配置
2,由于起名太困难,工程名随便起的,不要纠结这个,干货很重要
3,在iOS集成Flutter脚本 文件夹中xcode_backend.sh是ios原生项目打包用的,具体:https://www.jianshu.com/p/b16ff23363c0
详细步骤:
1,创建flutter工程,终端:flutter create xxx (网上有很多用flutter create -t module xxx方法来创建的,本教程不用这个)
2,在pubspec.yaml添加闲鱼的flutterboost插件
3,根据项目实际需求和闲鱼flutterboost技术文档,进行配置页面等相关内容
4,将脚本中的build_for_ios.sh拖入到根目录中,终端运行:bash build_for_ios.sh
5,待脚本运行完毕,在根目录下会生成一个build_for_ios文件夹,文件夹中的产物:App.framework、flutter_boost.framework、Flutter.framework、 GeneratedPluginRegistrant.h、GeneratedPluginRegistrant.m
6,将build_for_ios中的产物拖进ios原生项目工程中
7,在TARGETS下Build Phases中的link Binary With Libraries添加libc++.tdb
8,左上角加号,创建New Copy Files Phases,将产物中的framework添加进去,Destination选择Frameworks
9,将工程bitcode 置为No
10,运行工程应该没有问题,配置完毕,接下来将添加代码
11,创建Router,继承自Nsobject,#import
,根据flutter_boost要求实现其代理方法即可。具体代码在ios原生工程中(DemoRouter)
12,在AppDelegate.h中,引入#import
13,在didFinishLaunchingWithOptions方法中初始化GeneratedPluginRegistrant,FlutterBoostPlugin初始化
14,最后在跳转方法中,调用路由DemoRouter设置参数跳转即可
15,具体看代码,程序员谁看文档啊,都是看代码