之前一直知道閑魚集成了flutter理茎,今天有時間集成了一下靶庙,網(wǎng)上的文章方向是對的,flutter_boost也更新了多個版本,大多老舊方法已不適用谱仪,將具體步驟流程記錄下來:
本文參照了一些網(wǎng)上教程及方法替梨,感謝大神們的分享仔燕,本文Github:https://github.com/gaolong1314/CWFlutter
閱讀本文需注意
1裂垦,文檔中,出于簡便斯入,將DemoRouter中的跳轉(zhuǎn)動畫設(shè)置為了YES砂碉,其可以在exts字典中配置
2,由于起名太困難刻两,工程名隨便起的增蹭,不要糾結(jié)這個,干貨很重要
3磅摹,在iOS集成Flutter腳本 文件夾中xcode_backend.sh是ios原生項目打包用的滋迈,具體:http://www.reibang.com/p/b16ff23363c0
詳細(xì)步驟:
1霎奢,創(chuàng)建flutter工程,終端:flutter create xxx (網(wǎng)上有很多用flutter create -t module xxx方法來創(chuàng)建的饼灿,本教程不用這個)
2椰憋,在pubspec.yaml添加閑魚的flutterboost插件
3,根據(jù)項目實際需求和閑魚flutterboost技術(shù)文檔赔退,進(jìn)行配置頁面等相關(guān)內(nèi)容
4,將腳本中的build_for_ios.sh拖入到根目錄中证舟,終端運行:bash build_for_ios.sh
5硕旗,待腳本運行完畢,在根目錄下會生成一個build_for_ios文件夾女责,文件夾中的產(chǎn)物:App.framework漆枚、flutter_boost.framework、Flutter.framework抵知、? ? ? ? GeneratedPluginRegistrant.h墙基、GeneratedPluginRegistrant.m
6,將build_for_ios中的產(chǎn)物拖進(jìn)ios原生項目工程中
7刷喜,在TARGETS下Build Phases中的link Binary With Libraries添加libc++.tdb
8残制,左上角加號,創(chuàng)建New Copy Files Phases掖疮,將產(chǎn)物中的framework添加進(jìn)去初茶,Destination選擇Frameworks
9,將工程bitcode 置為No
10浊闪,運行工程應(yīng)該沒有問題恼布,配置完畢,接下來將添加代碼
11搁宾,創(chuàng)建Router折汞,繼承自Nsobject,#import <flutter_boost/FLBPlatform.h>和<UIKit/UIKit.h>盖腿,遵循代理<FLBPlatform>
,根據(jù)flutter_boost要求實現(xiàn)其代理方法即可爽待。具體代碼在ios原生工程中(DemoRouter)
12,在AppDelegate.h中奸忽,引入#import <flutter_boost/FlutterBoost.h>堕伪、#import "GeneratedPluginRegistrant.h"、#import "DemoRouter.h"栗菜,將AppDelegate繼承的UIResponder,修改為FLBFlutterAppDelegate欠雌。
13,在didFinishLaunchingWithOptions方法中初始化GeneratedPluginRegistrant疙筹,F(xiàn)lutterBoostPlugin初始化
14富俄,最后在跳轉(zhuǎn)方法中禁炒,調(diào)用路由DemoRouter設(shè)置參數(shù)跳轉(zhuǎn)即可
15,具體看代碼霍比,程序員誰看文檔啊幕袱,都是看代碼