diff --git a/ios/Classes/FlutterWebviewPlugin.m b/ios/Classes/FlutterWebviewPlugin.m index b02ea42b..619d0bc1 100644 --- a/ios/Classes/FlutterWebviewPlugin.m +++ b/ios/Classes/FlutterWebviewPlugin.m @@ -39,14 +39,20 @@ - (void)showWebView:(FlutterMethodCall*)call { NSNumber *clearCookies = call.arguments[@"clearCookies"]; NSNumber *fullScreen = call.arguments[@"fullScreen"]; - self.webviewController = [[WebviewController alloc] initWithUrl:url withJavascript:withJavascript clearCache:clearCache clearCookes:clearCookies fullScreen:fullScreen]; + self.webviewController = [[WebviewController alloc] initWithUrl:url withJavascript:withJavascript clearCache:clearCache clearCookes:clearCookies]; - UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:self.webviewController]; - [_viewController presentModalViewController:navigation animated:YES]; + if ([fullScreen boolValue]) { + [self.viewController presentViewController:self.webviewController animated:YES completion:nil]; + } else { + UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:self.webviewController]; + [self.viewController presentModalViewController:navigation animated:YES]; + } } - (void)closeWebView { - [self.webviewController dismissViewControllerAnimated:YES completion:nil]; + [self.webviewController dismissViewControllerAnimated:YES completion:^{ + [channel invokeMethod:@"onDestroy" arguments:nil]; + }]; } @end diff --git a/ios/Classes/WebviewController.h b/ios/Classes/WebviewController.h index e46c9b06..cc679683 100644 --- a/ios/Classes/WebviewController.h +++ b/ios/Classes/WebviewController.h @@ -9,5 +9,5 @@ #import @interface WebviewController : UIViewController -- (instancetype)initWithUrl:(NSString *)url withJavascript:(NSNumber *)withJavascript clearCache:(NSNumber *)clearCache clearCookes:(NSNumber *)clearCookies fullScreen:(NSNumber *)fullScreen; +- (instancetype)initWithUrl:(NSString *)url withJavascript:(NSNumber *)withJavascript clearCache:(NSNumber *)clearCache clearCookes:(NSNumber *)clearCookies; @end diff --git a/ios/Classes/WebviewController.m b/ios/Classes/WebviewController.m index 97f57424..25f7f77e 100644 --- a/ios/Classes/WebviewController.m +++ b/ios/Classes/WebviewController.m @@ -14,19 +14,17 @@ @interface WebviewController () @property NSNumber *withJavascript; @property NSNumber *clearCache; @property NSNumber *clearCookies; -@property NSNumber *fullScreen; @end @implementation WebviewController -- (instancetype)initWithUrl:(NSString *)url withJavascript:(NSNumber *)withJavascript clearCache:(NSNumber *)clearCache clearCookes:(NSNumber *)clearCookies fullScreen:(NSNumber *)fullScreen { +- (instancetype)initWithUrl:(NSString *)url withJavascript:(NSNumber *)withJavascript clearCache:(NSNumber *)clearCache clearCookes:(NSNumber *)clearCookies { self = [super init]; if (self) { self.url = url; self.withJavascript = withJavascript; self.clearCache = clearCache; self.clearCookies = clearCookies; - self.fullScreen = fullScreen; } return self; } @@ -54,21 +52,9 @@ - (void)viewDidLoad { [self.view addSubview:webView]; } -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - if ([self.fullScreen boolValue]) { - [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; - } -} - - (IBAction)backButtonPressed:(id)sender { [channel invokeMethod:@"onBackPressed" arguments:nil]; [self dismissViewControllerAnimated:YES completion:nil]; } -- (void)dealloc { - [channel invokeMethod:@"onDestroy" arguments:nil]; -} - @end