发表日期:2018-09 文章编辑:小灯 浏览次数:3111
参考: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 浏览次数:6553
日期:2018-12 浏览次数:3578
日期:2018-07 浏览次数:4153
日期:2018-12 浏览次数:3477
日期:2018-09 浏览次数:4733
日期:2018-12 浏览次数:9096
日期:2018-11 浏览次数:4126
日期:2018-07 浏览次数:3871
日期:2018-05 浏览次数:4137
日期:2018-12 浏览次数:3593
日期:2018-10 浏览次数:4431
日期:2018-12 浏览次数:5439
日期:2018-11 浏览次数:3694
日期:2018-08 浏览次数:3761
日期:2018-11 浏览次数:11797
日期:2018-09 浏览次数:4870
日期:2018-12 浏览次数:4134
日期:2018-10 浏览次数:3487
日期:2018-11 浏览次数:3790
日期:2018-12 浏览次数:5226
日期:2018-06 浏览次数:3309
日期:2018-08 浏览次数:4774
日期:2018-10 浏览次数:3776
日期:2018-12 浏览次数:3661
日期:2018-07 浏览次数:3673
日期:2018-12 浏览次数:3789
日期:2018-06 浏览次数:3703
日期:2018-11 浏览次数:3678
日期:2018-12 浏览次数:3557
日期:2018-12 浏览次数:4400
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.