发表日期:2018-09 文章编辑:小灯 浏览次数:3113
参考: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 浏览次数:6558
日期:2018-12 浏览次数:3583
日期:2018-07 浏览次数:4156
日期:2018-12 浏览次数:3480
日期:2018-09 浏览次数:4737
日期:2018-12 浏览次数:9102
日期:2018-11 浏览次数:4130
日期:2018-07 浏览次数:3875
日期:2018-05 浏览次数:4141
日期:2018-12 浏览次数:3597
日期:2018-10 浏览次数:4434
日期:2018-12 浏览次数:5444
日期:2018-11 浏览次数:3697
日期:2018-08 浏览次数:3765
日期:2018-11 浏览次数:11801
日期:2018-09 浏览次数:4877
日期:2018-12 浏览次数:4138
日期:2018-10 浏览次数:3490
日期:2018-11 浏览次数:3793
日期:2018-12 浏览次数:5229
日期:2018-06 浏览次数:3312
日期:2018-08 浏览次数:4778
日期:2018-10 浏览次数:3784
日期:2018-12 浏览次数:3666
日期:2018-07 浏览次数:3678
日期:2018-12 浏览次数:3792
日期:2018-06 浏览次数:3710
日期:2018-11 浏览次数:3681
日期:2018-12 浏览次数:3562
日期:2018-12 浏览次数:4403
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.