From efea291cb6f3087169865a3c84095aebf5b690ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=99=E7=8E=A0?= <xujian.xj@alibaba-inc.com> Date: Mon, 30 Mar 2020 21:56:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E5=A5=BD=E4=B8=80=E4=B8=AAflutter?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=85=B3=E9=97=AD=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E5=AF=B9Engine=E7=9A=84OwnerViewController?= =?UTF-8?q?=E6=B8=85=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Classes/1.5/FLB2FlutterApplication.m | 9 +++++++++ ios/Classes/1.5/FLB2FlutterViewContainer.m | 1 - ios/Classes/Boost/FLBFlutterApplicationInterface.h | 3 +++ ios/Classes/Boost/FlutterBoostPlugin2.m | 9 ++++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ios/Classes/1.5/FLB2FlutterApplication.m b/ios/Classes/1.5/FLB2FlutterApplication.m index 4cded78..835a1eb 100755 --- a/ios/Classes/1.5/FLB2FlutterApplication.m +++ b/ios/Classes/1.5/FLB2FlutterApplication.m @@ -211,4 +211,13 @@ } } +- (void)onShownContainerChanged:(NSString *)uniqueId + params:(NSDictionary *)params{ + NSString *oldName = params[@"oldName"]; + NSString *newName = params[@"newName"]; + if (oldName!=nil && [newName isEqualToString:@"default"]) { + [self.flutterProvider detach]; + } +} + @end diff --git a/ios/Classes/1.5/FLB2FlutterViewContainer.m b/ios/Classes/1.5/FLB2FlutterViewContainer.m index ce7528f..f5ab334 100755 --- a/ios/Classes/1.5/FLB2FlutterViewContainer.m +++ b/ios/Classes/1.5/FLB2FlutterViewContainer.m @@ -255,7 +255,6 @@ static NSUInteger kInstanceCounter = 0; // [self surfaceUpdated:NO]; // } [super bridge_viewDidDisappear:animated]; - [FLUTTER_APP resume]; } - (void)installSplashScreenViewIfNecessary { diff --git a/ios/Classes/Boost/FLBFlutterApplicationInterface.h b/ios/Classes/Boost/FLBFlutterApplicationInterface.h index ff1f05a..0902857 100644 --- a/ios/Classes/Boost/FLBFlutterApplicationInterface.h +++ b/ios/Classes/Boost/FLBFlutterApplicationInterface.h @@ -74,6 +74,9 @@ NS_ASSUME_NONNULL_BEGIN params:(NSDictionary *)params uniqueId:(NSString *)uniqueId; +- (void)onShownContainerChanged:(NSString *)uniqueId + params:(NSDictionary *)params; + @end NS_ASSUME_NONNULL_END diff --git a/ios/Classes/Boost/FlutterBoostPlugin2.m b/ios/Classes/Boost/FlutterBoostPlugin2.m index 51c3190..d8f1d30 100755 --- a/ios/Classes/Boost/FlutterBoostPlugin2.m +++ b/ios/Classes/Boost/FlutterBoostPlugin2.m @@ -67,8 +67,15 @@ result(@(r)); }]; }else if([@"onShownContainerChanged" isEqualToString:call.method]){ - NSString *newName = call.arguments[@"newName"]; + NSDictionary *args = [FLBCollectionHelper deepCopyNSDictionary:call.arguments + filter:^bool(id _Nonnull value) { + return ![value isKindOfClass:NSNull.class]; + }]; + + NSString *newName = args[@"newName"]; + NSString *uid = args[@"uniqueId"]; if(newName){ + [[FlutterBoostPlugin2 sharedInstance].application onShownContainerChanged:uid params:args]; [NSNotificationCenter.defaultCenter postNotificationName:@"flutter_boost_container_showed" object:newName]; } -- 2.26.2