公司有老的项目是原生的oc写的代码,新的需求页面想要用flutter来写,那么如何在原生项目里加入flutter呢?
1、首页新建一个OC的原生工程项目。该项目是个简单的project的,只有一个页面和一个按钮,点击按钮present到flutter页面。如图
原生OC工程.png
2、创建一个flutter的Module项目,用来写flutter页面的。这里的module命名为flutter_oc_module。
Flutter module.png
3、接下来要在原生的oc工程中引入cocoapod来做管理。
// Podfile的内容
flutter_application_path = '../flutter_oc_module'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
platform :ios, '9.0'
target 'FlutterWithOC' do
install_all_flutter_pods(flutter_application_path)
use_frameworks!
end
podfile解析.png
4、执行pod install 就可以把创建的flutter module和原生的oc项目关联起来了。
工程截图.png
到此,oc原生项目就和flutter module关联起来了。那么怎么才能在一个原生页面点击跳转到flutter页面呢?
在iOS原生的ViewController里有个按钮,点击跳转到flutter页面,我们只要在按钮事件中创建一个FlutterViewController,然后push过去就可以了,灰常的简单。show code:
code.png
注意,这里flutter页面的样式内容用的是创建module的时候,自带的页面,没有更改。当然也可以在flutter module里更改样式,显示你自己的页面。