為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴
發(fā)表日期:2018-09 文章編輯:小燈 瀏覽次數(shù):3630
參考:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps
本文代碼:https://github.com/yonglinwang002/TestFlutter
假設(shè)已有工程 TestFlutter
$ cd TestFlutter/
$ flutter create -t module flutter_library
執(zhí)行后會(huì)生成
flutter_library 目錄
結(jié)構(gòu)如下
在主工程中增加一個(gè) 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)配置
在Run Script中增加
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
Cmd+B,Build工程,編譯后,F(xiàn)lutter目錄中生成如下
把其中的flutter_assets 目錄以及Flutter.framework加入到工程的Flutter Group中
注意添加flutter_assets目錄時(shí),選擇 Create forlder references !!!! (我就是這里沒(méi)注意,后面始終出錯(cuò))
這里就沒(méi)有什么好說(shuō)的了,
#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,可以到不同的頁(yè)面
??? [self presentViewController:flutterViewController animated:NO completion:nil];
}
Cmd+R吧,就出來(lái)了
這里說(shuō)一個(gè)熱重載的方法 (Hot Reload) 在終端上
$ cd flutter_library
$ flutter attach
Waiting for a connection from Flutter on iPhone X...
然后,在XCode中 Cmd+R 執(zhí)行,待進(jìn)入到FlutterView頁(yè)面時(shí),
終端變成如下
這時(shí)如果修改了dart文件 ,再按r就可以重新載入
q 退出
日期:2018-10 瀏覽次數(shù):7540
日期:2018-12 瀏覽次數(shù):4618
日期:2018-07 瀏覽次數(shù):5133
日期:2018-12 瀏覽次數(shù):4413
日期:2018-09 瀏覽次數(shù):5772
日期:2018-12 瀏覽次數(shù):10193
日期:2018-11 瀏覽次數(shù):5104
日期:2018-07 瀏覽次數(shù):4854
日期:2018-05 瀏覽次數(shù):5115
日期:2018-12 瀏覽次數(shù):4580
日期:2018-10 瀏覽次數(shù):5390
日期:2018-12 瀏覽次數(shù):6456
日期:2018-11 瀏覽次數(shù):4714
日期:2018-08 瀏覽次數(shù):4866
日期:2018-11 瀏覽次數(shù):12959
日期:2018-09 瀏覽次數(shù):5875
日期:2018-12 瀏覽次數(shù):5093
日期:2018-10 瀏覽次數(shù):4438
日期:2018-11 瀏覽次數(shù):4789
日期:2018-12 瀏覽次數(shù):6318
日期:2018-06 瀏覽次數(shù):4263
日期:2018-08 瀏覽次數(shù):5711
日期:2018-10 瀏覽次數(shù):4698
日期:2018-12 瀏覽次數(shù):4813
日期:2018-07 瀏覽次數(shù):4628
日期:2018-12 瀏覽次數(shù):4800
日期:2018-06 瀏覽次數(shù):4635
日期:2018-11 瀏覽次數(shù):4616
日期:2018-12 瀏覽次數(shù):4543
日期:2018-12 瀏覽次數(shù):5527
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.