IOS Flutter混合棧集成FlutterBoost一些簡(jiǎn)單封裝

由于官方flutter工程對(duì)原生項(xiàng)目侵入性極大
不適合于大型項(xiàng)目開(kāi)發(fā)
顧本人使用了flutter module 和 flutterboost
完美解決的flutter和native的交互


FlutterBoost是有阿里閑魚(yú)團(tuán)隊(duì)開(kāi)發(fā)的一款flutter插件

新一代Flutter-Native混合解決方案亡电。 FlutterBoost是一個(gè)Flutter插件车胡,它可以輕松地為現(xiàn)有原生應(yīng)用程序提供Flutter混合集成方案菠净。FlutterBoost的理念是將Flutter像Webview那樣來(lái)使用步清。在現(xiàn)有應(yīng)用程序中同時(shí)管理Native頁(yè)面和Flutter頁(yè)面并非易事哑芹。 FlutterBoost幫你處理頁(yè)面的映射和跳轉(zhuǎn)堵幽,你只需關(guān)心頁(yè)面的名字和參數(shù)即可(通常可以是URL)瞳腌。

github地址:
傳送門(mén)https://github.com/alibaba/flutter_boost

  • flutter跳轉(zhuǎn)ios頁(yè)面自定義配置

根據(jù)官方在flutter里配置路由的方式,我在ios寫(xiě)了一套配置controller的方案

swift:

var boostflag = "_ios_"

@objc
class BoostControllerConfig : NSObject {

    @objc
    static var controllers : [String : BoostModel] {
        return [ boostflag + "main" : BoostModel({_,_,_ in MainViewController()}),
                  ///這里從flutter端發(fā)過(guò)來(lái)的參數(shù)都會(huì)在BoostModel的block里回調(diào)镜雨,這里需要返回給總      
                  ///路由一個(gè)controller
                 boostflag + "Second" : BoostModel({ (_, param, _) -> UIViewController in
                    return SecondViewController(param , true)
                 }),
                 boostflag + "map" : BoostModel({_,_,_ in MapViewController()})]
    }
    
    
}
@objc
class BoostModel : NSObject {
    @objc
    var BoostBlockSwift : ((String , [String: Any] ,[String : Any]) -> UIViewController)?
    ///使用block回調(diào)參數(shù)
    init(_ block : @escaping ((String , [String: Any] ,[String : Any]) -> UIViewController)) {
        super.init()
        
        self.BoostBlockSwift = {(name , param , exits) in
            return block(name , param , exits)
        }
    }
}

  • 跳轉(zhuǎn)的所有由路請(qǐng)求由ios管理

這里官方在demo里已經(jīng)寫(xiě)好嫂侍,我在基礎(chǔ)上稍微修改了一下
這里是回調(diào)上面的配置

oc: PlatformRouterImp.m

- (void)open:(NSString *)name
   urlParams:(NSDictionary *)params
        exts:(NSDictionary *)exts
  completion:(void (^)(BOOL))completion
{
    ///如果flutter請(qǐng)求的name帶有ios標(biāo)識(shí)
    if ([name containsString:@"_ios_"]) {

        ///從配置中取出名字對(duì)應(yīng)的model
        BoostModel * model = BoostControllerConfig.controllers[name];
        //把從flutter端傳過(guò)來(lái)的參數(shù)回調(diào)
        UIViewController * vc = model.BoostBlockSwift(name, params, exts);
        vc.title = exts[@"title"];
        [self.navigationController pushViewController:vc animated:true];
        
    } else {
        FLBFlutterViewContainer *vc = FLBFlutterViewContainer.new;
        vc.title = exts[@"title"];
        [vc setName:name params:params];
        [self.navigationController pushViewController:vc animated:true];
        
    }
    if(completion) completion(YES);
}
  • flutter端push native頁(yè)面

dart:

FlutterBoost.singleton.open("_ios_map");

demo已經(jīng)上傳GitHub

WX20191128-160335.png

使用的fluttermodule方式
侵入性很小
demo很詳細(xì)
喜歡的請(qǐng)點(diǎn)star
傳送門(mén)
https://github.com/xujiyao123/FlutterNativeHybrid

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荚坞,隨后出現(xiàn)的幾起案子挑宠,更是在濱河造成了極大的恐慌,老刑警劉巖颓影,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件各淀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡诡挂,警方通過(guò)查閱死者的電腦和手機(jī)碎浇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咆畏,“玉大人南捂,你說(shuō)我怎么就攤上這事【烧遥” “怎么了溺健?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)钮蛛。 經(jīng)常有香客問(wèn)我鞭缭,道長(zhǎng),這世上最難降的妖魔是什么魏颓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任岭辣,我火速辦了婚禮,結(jié)果婚禮上甸饱,老公的妹妹穿的比我還像新娘沦童。我一直安慰自己,他們只是感情好叹话,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布偷遗。 她就那樣靜靜地躺著,像睡著了一般驼壶。 火紅的嫁衣襯著肌膚如雪氏豌。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天热凹,我揣著相機(jī)與錄音泵喘,去河邊找鬼泪电。 笑死,一個(gè)胖子當(dāng)著我的面吹牛纪铺,可吹牛的內(nèi)容都是我干的相速。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼霹陡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼和蚪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起烹棉,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤攒霹,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后浆洗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體催束,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年伏社,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抠刺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡摘昌,死狀恐怖速妖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情聪黎,我是刑警寧澤罕容,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站稿饰,受9級(jí)特大地震影響锦秒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喉镰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一旅择、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侣姆,春花似錦生真、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至偿凭,卻和暖如春产弹,著一層夾襖步出監(jiān)牢的瞬間派歌,已是汗流浹背弯囊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工痰哨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匾嘱。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓斤斧,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親霎烙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撬讽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 記得去年9月份的時(shí)候谷歌在上海有一次開(kāi)發(fā)者大會(huì),去參加的時(shí)候關(guān)注到了flutter悬垃,隨后沒(méi)過(guò)多久就發(fā)布了1.0版本...
    炸雞叔閱讀 24,757評(píng)論 9 64
  • 權(quán)限管理基本概念 我們可以把MySQL看做是一個(gè)工廠游昼,db就是其中的一個(gè)個(gè)倉(cāng)庫(kù),比如有A倉(cāng)庫(kù)尝蠕,B倉(cāng)庫(kù)等等烘豌,而我們的...
    黃二的NPE閱讀 299評(píng)論 0 1
  • 第一次看小人書(shū)是什么時(shí)候已無(wú)從想起,它就像一塊巨大的磁石看彼,而我就是顆小小的鐵屑廊佩,根本沒(méi)有任何抗拒能力。童年一直到初...
    我是KAKA閱讀 699評(píng)論 1 1
  • 今天跟朋友們聊一聊大眾情緒 “抱怨”料皇。 關(guān)于談抱怨的內(nèi)容比較廣,可以是人簸淀、是事瓶蝴、是自己...... 今天想聊的方面...
    暢談一下閱讀 364評(píng)論 0 0
  • 祥子已經(jīng)沒(méi)有負(fù)擔(dān)了, 可以放松拉車(chē)了租幕, 不用再那么拼命了舷手。祥子 現(xiàn)在已經(jīng)有很多朋友了,他們互相幫助劲绪∧锌撸可謂"有福...
    于浩然密探閱讀 1,067評(píng)論 0 2