發表日期:2018-09 文章編輯:小燈 瀏覽次數:3460
參考:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps
本文代碼:https://github.com/yonglinwang002/TestFlutter
假設已有工程 TestFlutter
$ cd TestFlutter/
$ flutter create -t module flutter_library
執行后會生成
flutter_library 目錄
結構如下
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相應配置
在Run Script中增加
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
Cmd+B,Build工程,編譯后,Flutter目錄中生成如下
編譯后生成目錄把其中的flutter_assets 目錄以及Flutter.framework加入到工程的Flutter Group中
注意添加flutter_assets目錄時,選擇 Create forlder references !!!! (我就是這里沒注意,后面始終出錯)
添加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 退出
日期:2018-10 瀏覽次數:7247
日期:2018-12 瀏覽次數:4321
日期:2018-07 瀏覽次數:4869
日期:2018-12 瀏覽次數:4168
日期:2018-09 瀏覽次數:5491
日期:2018-12 瀏覽次數:9916
日期:2018-11 瀏覽次數:4798
日期:2018-07 瀏覽次數:4574
日期:2018-05 瀏覽次數:4852
日期:2018-12 瀏覽次數:4316
日期:2018-10 瀏覽次數:5133
日期:2018-12 瀏覽次數:6207
日期:2018-11 瀏覽次數:4454
日期:2018-08 瀏覽次數:4587
日期:2018-11 瀏覽次數:12624
日期:2018-09 瀏覽次數:5571
日期:2018-12 瀏覽次數:4825
日期:2018-10 瀏覽次數:4180
日期:2018-11 瀏覽次數:4523
日期:2018-12 瀏覽次數:6058
日期:2018-06 瀏覽次數:4003
日期:2018-08 瀏覽次數:5429
日期:2018-10 瀏覽次數:4453
日期:2018-12 瀏覽次數:4517
日期:2018-07 瀏覽次數:4356
日期:2018-12 瀏覽次數:4495
日期:2018-06 瀏覽次數:4376
日期:2018-11 瀏覽次數:4370
日期:2018-12 瀏覽次數:4243
日期:2018-12 瀏覽次數:5276
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.