diff --git a/src/ios/CDVWKInAppBrowser.h b/src/ios/CDVWKInAppBrowser.h index 1f359b171..7fddf9c87 100644 --- a/src/ios/CDVWKInAppBrowser.h +++ b/src/ios/CDVWKInAppBrowser.h @@ -27,6 +27,8 @@ @class CDVWKInAppBrowserViewController; @interface CDVWKInAppBrowser : CDVPlugin { + UIWindow * tmpWindow; + @private NSString* _beforeload; BOOL _waitForBeforeload; diff --git a/src/ios/CDVWKInAppBrowser.m b/src/ios/CDVWKInAppBrowser.m index 3b039f50b..e03d5c994 100644 --- a/src/ios/CDVWKInAppBrowser.m +++ b/src/ios/CDVWKInAppBrowser.m @@ -314,17 +314,18 @@ - (void)show:(CDVInvokedUrlCommand*)command withNoAnimate:(BOOL)noAnimate dispatch_async(dispatch_get_main_queue(), ^{ if (weakSelf.inAppBrowserViewController != nil) { float osVersion = [[[UIDevice currentDevice] systemVersion] floatValue]; - CGRect frame = [[UIScreen mainScreen] bounds]; - if(initHidden && osVersion < 11){ - frame.origin.x = -10000; + if (!tmpWindow) { + CGRect frame = [[UIScreen mainScreen] bounds]; + if(initHidden && osVersion < 11){ + frame.origin.x = -10000; + } + tmpWindow = [[UIWindow alloc] initWithFrame:frame]; } - - UIWindow *tmpWindow = [[UIWindow alloc] initWithFrame:frame]; UIViewController *tmpController = [[UIViewController alloc] init]; - + [tmpWindow setRootViewController:tmpController]; [tmpWindow setWindowLevel:UIWindowLevelNormal]; - + if(!initHidden || osVersion < 11){ [tmpWindow makeKeyAndVisible]; }