<address id="r9vd9"><address id="r9vd9"><listing id="r9vd9"></listing></address></address>

      歡迎您光臨深圳塔燈網絡科技有限公司!
      電話圖標 余先生:13699882642

      網站百科

      為您解碼網站建設的點點滴滴

      在存在的iOS工程中使用Flutter

      發表日期:2018-09 文章編輯:小燈 瀏覽次數:3625

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

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

      一、生成Flutter 模塊

      假設已有工程 TestFlutter

      $ cd TestFlutter/

      $ flutter create -t module flutter_library

      執行后會生成

      flutter_library 目錄

      結構如下

      Flutter模塊

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

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

      生成后結構

      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相應配置


      三、設置執行Flutter的腳本

      在Run Script中增加

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


      Run Script

      四、執行腳本并把Framework加入工程

      Cmd+B,Build工程,編譯后,Flutter目錄中生成如下

      編譯后生成目錄

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

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

      添加Flutter相關文件

      五、添加調用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"];//如果設置了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 執行,待進入到FlutterView頁面時,

      終端變成如下

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

      q 退出


      本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.webpost.com.cn/18193.html
      相關APP開發
       八年  行業經驗

      多一份參考,總有益處

      聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

      咨詢相關問題或預約面談,可以通過以下方式與我們聯系

      業務熱線:余經理:13699882642

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

      国产成人精品综合在线观看