赞
踩
原生的oc写的代码,新的需求页面想要用flutter来写,那么如何在原生项目里加入flutter呢?
1、新建一个OC的原生工程项目。该项目是个简单的project的,只有一个页面和一个按钮,点击按钮present到flutter页面。如图
2、创建一个flutter的Module项目,用来写flutter页面的。这里的module命名为flutter_module。
这里使用flutter命令创建
cd到相应的ios工程目录下,执行以下命令:
flutter create --template module flutter_module
相应的目录下出现flutter_module,说明创建成功
3、接着在原生的oc工程中引入cocoapod来做管理。
cd 到原生的oc工程中,执行 pod init
修改podfile
在podfile依赖文件的依赖部分添加如下内容:
- flutter_application_path = 'flutter_module' #创建的flutter模块名和路径。这里的路径是相对路径
- load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
然后在要集成flutter的target中添加
install_all_flutter_pods(flutter_application_path)
podfile的内容如下:
4、执行pod install 就可以把创建的flutter module和原生的oc项目关联起来了。
到此,oc原生项目就和flutter module关联起来了。那么怎么才能在一个原生页面点击跳转到flutter页面呢?
在iOS原生的ViewController里有个按钮,点击跳转到flutter页面,我们只要在按钮事件中创建一个FlutterViewController,然后push过去就可以了,灰常的简单。show code:
注意,这里flutter页面的样式内容用的是创建module的时候,自带的页面,没有更改。当然也可以在flutter module里更改样式,显示你自己的页面。
遇到的坑:
我用的flutter版本是2.8.0,在引入#import <Flutter/Flutter.h>之后,报头文件找不到的问题
终端执行flutter doctor
xcode那里有告警,我本地的cocoapods版本是1.8.3,升级cocoapods版本到1.10.0,头文件找不到问题解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。