• <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.    

    成人精品一区二区三区校园激情 | 精品国产福利在线观看| 国产高清在线精品一区二区 | 中国国产成人精品久久| 高清国产精品久久| 国产精品久久久天天影视| 久久精品国产亚洲AV麻豆不卡| 亚洲国产小视频精品久久久三级 | 一本一道久久精品综合| 精品亚洲一区二区三区在线播放| 国产精品成人一区无码| 色哟哟精品视频在线观看| 67194老司机精品午夜| 国产精品三级国产电影| 国产日韩久久久精品影院首页| 日本精品在线观看视频| 亚洲AV无码国产精品永久一区| 精品久久久久久中文字幕大豆网| 久久一本精品久久精品66| 精品国产亚洲一区二区三区| 91精品国产9l久久久久| 国产精品成人99久久久久91gav| 精品天海翼一区二区| 四虎国产精品免费久久影院| 国产精品宾馆在线| 国产精品久久精品视| 精品香蕉久久久午夜福利| 亚洲国产精品成人综合色在线| 2020国产精品自拍| 国产精品成人观看视频免费| 亚洲精品91在线| 亚洲精品美女久久久久| 久久久久久精品免费免费自慰| 精品亚洲国产成AV人片传媒| 97视频精品全国在线观看| 99热在线精品免费播放6| 99久久精品国产片久人| 中文字幕精品一区二区日本| 亚洲欧洲精品在线| 99久久久精品免费观看国产| 亚洲午夜精品久久久久久app|