Skip to content

Commit

Permalink
[iOS]统一参数配置,pop部分完成
Browse files Browse the repository at this point in the history
  • Loading branch information
luckysmg authored and ColdPaleLight committed May 12, 2021
1 parent c085258 commit ce48530
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 12 deletions.
4 changes: 2 additions & 2 deletions example/ios/Runner/MyFlutterBoostDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ - (void)pushFlutterRoute:(FlutterBoostRouteOptions *)options {
}
}

- (void) popRoute:(NSString *)uniqueId {
- (void) popRoute:(FlutterBoostRouteOptions *)options {

FBFlutterViewContainer *vc = (id)self.navigationController.presentedViewController;

if([vc isKindOfClass:FBFlutterViewContainer.class] && [vc.uniqueIDString isEqual: uniqueId]){
if([vc isKindOfClass:FBFlutterViewContainer.class] && [vc.uniqueIDString isEqual: options.uniqueId]){
[vc dismissViewControllerAnimated:YES completion:^{}];
}else{
[self.navigationController popViewControllerAnimated:YES];
Expand Down
12 changes: 9 additions & 3 deletions ios/Classes/FlutterBoostDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,15 @@

@optional
- (FlutterEngine*) engine;
@required
@required

///如果框架发现您输入的路由表在flutter里面注册的路由表中找不到,那么就会调用此方法来push一个纯原生页面
- (void) pushNativeRoute:(NSString *) pageName arguments:(NSDictionary *) arguments;
- (void) pushFlutterRoute:(FlutterBoostRouteOptions*)options;
- (void) popRoute:(NSString *)uniqueId;

///当框架的withContainer为true的时候,会调用此方法来做原生的push
- (void) pushFlutterRoute:(FlutterBoostRouteOptions *)options;

///当pop调用涉及到原生容器的时候,此方法将会被调用
- (void) popRoute:(FlutterBoostRouteOptions *)options;
@end

21 changes: 14 additions & 7 deletions ios/Classes/FlutterBoostPlugin.m
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ + (FlutterBoostPlugin* )getPlugin:(FlutterEngine*)engine{
}

-(instancetype)initWithMessenger:(id<FlutterBinaryMessenger>)messenger {
self = [super init];
if (self) {
_flutterApi = [[FBFlutterRouterApi alloc] initWithBinaryMessenger:messenger];
_containerManager= [FBFlutterContainerManager new];
}
return self;
self = [super init];
if (self) {
_flutterApi = [[FBFlutterRouterApi alloc] initWithBinaryMessenger:messenger];
_containerManager= [FBFlutterContainerManager new];
}
return self;
}

-(void)pushNativeRoute:(FBCommonParams*)input error:(FlutterError *_Nullable *_Nonnull)error {
Expand All @@ -88,7 +88,14 @@ -(void)pushFlutterRoute:(FBCommonParams*)input error:(FlutterError *_Nullable *_

-(void)popRoute:(FBCommonParams*)input error:(FlutterError *_Nullable *_Nonnull)error {
if([self.containerManager containUniqueId:input.uniqueId]){
[self.delegate popRoute:input.uniqueId];
//封装成options传回代理
FlutterBoostRouteOptions* options = [[FlutterBoostRouteOptions alloc]init];
options.pageName = input.pageName;
options.uniqueId = input.uniqueId;
options.arguments = input.arguments;

//调用代理回调给调用层
[self.delegate popRoute:options];
};
}

Expand Down

0 comments on commit ce48530

Please sign in to comment.