flutter 與原生app混合開(kāi)發(fā)官方有兩種開(kāi)發(fā)方式,一種源碼集成,另一種是產(chǎn)物集成,各有利弊。我是第一種方式,集成的源碼,當(dāng)然先要集成配置flutter開(kāi)發(fā)環(huán)境,如何配置我這里不細(xì)說(shuō)了,不知道的可自行百度、谷歌。
我這里主要是說(shuō)一下,在使用源碼集成方式的步驟細(xì)節(jié),因?yàn)樽铋_(kāi)始使用源碼集成方式到目前官方已經(jīng)有所更新,所以之前久的集成方式已經(jīng)不適用最新的版本,我在網(wǎng)上看的所有的集成方式都是很古老的方法,而我現(xiàn)在按照那些方法集成后,結(jié)果項(xiàng)目就報(bào)了錯(cuò)。后來(lái)根據(jù)官網(wǎng)上的步驟才順利完成:
首先你的電腦要安裝了flutter開(kāi)發(fā)環(huán)境!
終端進(jìn)入項(xiàng)目的同級(jí)目錄,使用如下命令創(chuàng)建一個(gè)flutter項(xiàng)目,flutter_module 是項(xiàng)目名稱(chēng),可自取,
flutter create -t module flutter_module
iOS項(xiàng)目必須要使用pod管理,不知道的自行百度。創(chuàng)建好flutter項(xiàng)目后打開(kāi)Podfile文件,在最上面添加如下代碼,如圖所示位置,../flutter_module 就是之前創(chuàng)建的flutter項(xiàng)目的路徑:
(注意!要寫(xiě)在 target 'Flutter_Hybrid' do 和 end 的范圍外面,如圖所示)
flutter_application_path = '../flutter_module'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
然后在 target 'Flutter_Hybrid' do 內(nèi)部添加(如圖所示):
install_all_flutter_pods(flutter_application_path)
下一步,cd 到項(xiàng)目里,再執(zhí)行一遍 pod install ,如圖所示就已經(jīng)成功集成完畢 :
設(shè)置bitcode 為 NO
然后在你需要的contrller里倒入頭文件,new 一個(gè)FlutterViewController, 就能跳轉(zhuǎn) flutter界面了:
#import <Flutter/Flutter.h>
FlutterViewController* flutterViewController = [[FlutterViewController alloc] init];
[self.navigationController presentViewController:flutterViewController animated:YES completion:nil];
FlutterViewController 是flutter的控制器,對(duì)應(yīng)的文件就是 lib/main.dart()如圖所示:
??重點(diǎn)說(shuō)明:不要在 Build Phases 里再New Run Script Phase 添加任何的腳本了!
不要在 Build Phases 里再New Run Script Phase 添加任何的腳本了!
不要在 Build Phases 里再New Run Script Phase 添加任何的腳本了!
最新版已經(jīng)不需要了,添加了會(huì)報(bào)錯(cuò)!!!
網(wǎng)上一些過(guò)時(shí)的教程有時(shí)候真是坑爹,也不知更新,誤導(dǎo)了多少人。
希望能幫助你人少踩坑!