• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
    電話圖標(biāo) 余先生:13699882642

    網(wǎng)站百科

    為您解碼網(wǎng)站建設(shè)的點點滴滴

    在存在的iOS工程中使用Flutter

    發(fā)表日期:2018-09 文章編輯:小燈 瀏覽次數(shù):3635

    參考:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps

    本文代碼:https://github.com/yonglinwang002/TestFlutter

    一、生成Flutter 模塊

    假設(shè)已有工程 TestFlutter

    $ cd TestFlutter/

    $ flutter create -t module flutter_library

    執(zhí)行后會生成

    flutter_library 目錄

    結(jié)構(gòu)如下

    Flutter模塊

    二、使用宿主工程依賴Flutter模塊

    在主工程中增加一個 Group 如名為Flutter

    生成后結(jié)構(gòu)

    TestFlutter/

    ? ? Flutter/

    ? ? ? Flutter.xcconfig

    ? ? TestFlutter/

    ? ? ? AppDelegate.h

    ? ? ? AppDelegate.m

    ? ? ? :

    ? ? ? Debug.xcconfig

    ? ? ? Release.xcconfig

    編輯Flutter.xcconfig 文件

    #include "../flutter_library/.ios/Flutter/Generated.xcconfig"

    ENABLE_BITCODE=NO

    Debug.xcconfig文件

    #include "../Flutter/Flutter.xcconfig"

    Release.xcconfig文件

    #include "../Flutter/Flutter.xcconfig"

    FLUTTER_BUILD_MODE=release


    使用xcconfig相應(yīng)配置


    三、設(shè)置執(zhí)行Flutter的腳本

    在Run Script中增加

    "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build


    Run Script

    四、執(zhí)行腳本并把Framework加入工程

    Cmd+B,Build工程,編譯后,F(xiàn)lutter目錄中生成如下

    編譯后生成目錄

    把其中的flutter_assets 目錄以及Flutter.framework加入到工程的Flutter Group中

    注意添加flutter_assets目錄時,選擇 Create forlder references !!!! (我就是這里沒注意,后面始終出錯)

    添加Flutter相關(guān)文件

    五、添加調(diào)用Flutter語句

    這里就沒有什么好說的了,

    #import "Flutter/Flutter.h"


    - (void)viewDidLoad {
    ??? [super viewDidLoad];
    ??? [self.view setBackgroundColor:[UIColor orangeColor]];
    ???
    ??? UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    ??? [button addTarget:self
    ?????????????? action:@selector(handleButtonAction)
    ???? forControlEvents:UIControlEventTouchUpInside];
    ??? [button setTitle:@"Press me" forState:UIControlStateNormal];
    ??? [button setBackgroundColor:[UIColor blueColor]];
    ??? button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
    ??? [self.view addSubview:button];
    ???
    ??? // Do any additional setup after loading the view, typically from a nib.
    }


    - (void)handleButtonAction {
    ??? FlutterViewController* flutterViewController = [[FlutterViewController alloc] init];
    ??? flutterViewController.view.frame = [UIScreen mainScreen].bounds;
    //??? [flutterViewController setInitialRoute:@"route1"];//如果設(shè)置了router,可以到不同的頁面
    ??? [self presentViewController:flutterViewController animated:NO completion:nil];
    }


    Cmd+R吧,就出來了

    這里說一個熱重載的方法 (Hot Reload) 在終端上

    $ cd flutter_library

    $ flutter attach

    Waiting for a connection from Flutter on iPhone X...

    然后,在XCode中 Cmd+R 執(zhí)行,待進(jìn)入到FlutterView頁面時,

    終端變成如下

    這時如果修改了dart文件 ,再按r就可以重新載入

    q 退出


    本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.juherenli.com/18193.html
    相關(guān)APP開發(fā)
     八年  行業(yè)經(jīng)驗

    多一份參考,總有益處

    聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費獲得網(wǎng)站建設(shè)方案及報價

    咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

    業(yè)務(wù)熱線:余經(jīng)理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    国产成人精品实拍在线| 久久久国产精品四虎| 精品露脸国产偷人在视频| 亚洲精品在线免费观看| 精品国产免费观看一区| 99re6这里只有精品视频| 国产精品免费观看久久| 国产高清在线精品一本大道国产| 久久国产精品久久精品国产| 国产精品怡红院在线观看| 91精品一区二区| 亚洲精品无码久久久久去q | 青草国产精品视频。| 国产午夜精品一区二区| 在线视频日韩精品| 无码精品国产dvd在线观看9久| 亚洲AV无码久久精品成人| 精品国产一区二区三区在线观看 | 国产精品嫩草影院人体模特| 华人在线精品免费观看| 国产日韩高清三级精品人成| 国产精品一区二区四区| 久久久久久亚洲精品无码| 亚洲国产精品综合久久网各| 久久精品国产亚洲麻豆| 中日精品无码一本二本三本| www.久久精品| 国产精品三级在线| 亚洲国产精品第一区二区| 田中瞳中文字幕久久精品| 亚洲精品和日本精品| 国产成人一区二区精品非洲 | 国产精品青草久久| 久久久久无码精品国产h动漫| 精品一区二区三区四区在线播放 | 国产精品99久久免费| 国产亚洲精品AAAA片APP| 无码国产精品一区二区免费| 精品日产卡一卡二卡国色天香| 少妇人妻偷人精品视频| 久久久久亚洲精品影视|