From 031d07d47b271439e0e41e200213a71e498d58d4 Mon Sep 17 00:00:00 2001 From: zher52 Date: Thu, 17 Sep 2020 17:11:07 +0800 Subject: [PATCH] =?UTF-8?q?add=20=20=E6=B7=BB=E5=8A=A0statusbar=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AE=E6=98=AF=E5=90=A6=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ios/CDVInAppBrowserOptions.h | 1 + src/ios/CDVInAppBrowserOptions.m | 1 + src/ios/CDVWKInAppBrowser.h | 9 ++++++++ src/ios/CDVWKInAppBrowser.m | 35 ++++++++++++++++++++++++++------ 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/ios/CDVInAppBrowserOptions.h b/src/ios/CDVInAppBrowserOptions.h index c1c9fa5..38c449c 100644 --- a/src/ios/CDVInAppBrowserOptions.h +++ b/src/ios/CDVInAppBrowserOptions.h @@ -21,6 +21,7 @@ @interface CDVInAppBrowserOptions : NSObject {} @property (nonatomic, assign) BOOL location; +@property (nonatomic, assign) BOOL statusbar; @property (nonatomic, assign) BOOL toolbar; @property (nonatomic, copy) NSString* closebuttoncaption; @property (nonatomic, copy) NSString* closebuttoncolor; diff --git a/src/ios/CDVInAppBrowserOptions.m b/src/ios/CDVInAppBrowserOptions.m index e20d1a8..7e11a0b 100644 --- a/src/ios/CDVInAppBrowserOptions.m +++ b/src/ios/CDVInAppBrowserOptions.m @@ -27,6 +27,7 @@ // default values self.location = YES; self.toolbar = YES; + self.statusbar = YES; self.closebuttoncaption = nil; self.toolbarposition = @"bottom"; self.cleardata = NO; diff --git a/src/ios/CDVWKInAppBrowser.h b/src/ios/CDVWKInAppBrowser.h index 9d653bb..4a97c4d 100644 --- a/src/ios/CDVWKInAppBrowser.h +++ b/src/ios/CDVWKInAppBrowser.h @@ -39,6 +39,8 @@ @property (nonatomic, copy) NSString* callbackId; @property (nonatomic, copy) NSRegularExpression *callbackIdPattern; +@property (nonatomic) BOOL* statusbar; + + (id) getInstance; - (void)open:(CDVInvokedUrlCommand*)command; - (void)close:(CDVInvokedUrlCommand*)command; @@ -48,6 +50,9 @@ - (void)back:(CDVInvokedUrlCommand*)command; - (void)loadAfterBeforeload:(CDVInvokedUrlCommand*)command; +- (void)showStatusbar:(BOOL)show; +- (int)statusbarHieght; + @end @interface CDVWKInAppBrowserViewController : UIViewController { @@ -71,8 +76,12 @@ @property (nonatomic, weak) CDVWKInAppBrowser* navigationDelegate; @property (nonatomic) NSURL* currentURL; +@property (nonatomic) BOOL* statusbar; + - (void)close; - (void)navigateTo:(NSURL*)url; +- (void)showStatusbar:(BOOL)show; +- (int)statusbarHieght; - (void)showLocationBar:(BOOL)show; - (void)showToolBar:(BOOL)show : (NSString *) toolbarPosition; - (void)setCloseButtonTitle:(NSString*)title : (NSString*) colorString : (int) buttonIndex; diff --git a/src/ios/CDVWKInAppBrowser.m b/src/ios/CDVWKInAppBrowser.m index edb93a3..459e563 100644 --- a/src/ios/CDVWKInAppBrowser.m +++ b/src/ios/CDVWKInAppBrowser.m @@ -35,7 +35,6 @@ #define IAB_BRIDGE_NAME @"cordova_iab" #define TOOLBAR_HEIGHT 44.0 -#define STATUSBAR_HEIGHT 0 #define LOCATIONBAR_HEIGHT 21.0 #define FOOTER_HEIGHT ((TOOLBAR_HEIGHT) + (LOCATIONBAR_HEIGHT)) @@ -67,7 +66,18 @@ static CDVWKInAppBrowser* instance = nil; { [self close:nil]; } - +- (void)showStatusbar:(BOOL)show +{ + self.statusbar = show; +} +- (int)statusbarHieght +{ + if(self.statusbar) { + return [[UIApplication sharedApplication] statusBarFrame].size.height; + } else { + return 0; + } +} - (void)close:(CDVInvokedUrlCommand*)command { if (self.inAppBrowserViewController == nil) { @@ -207,6 +217,8 @@ static CDVWKInAppBrowser* instance = nil; } } + [self.inAppBrowserViewController showStatusbar:browserOptions.statusbar]; + [self showStatusbar:browserOptions.statusbar]; [self.inAppBrowserViewController showLocationBar:browserOptions.location]; [self.inAppBrowserViewController showToolBar:browserOptions.toolbar :browserOptions.toolbarposition]; if (browserOptions.closebuttoncaption != nil || browserOptions.closebuttoncolor != nil) { @@ -315,7 +327,7 @@ static CDVWKInAppBrowser* instance = nil; // [self->tmpWindow makeKeyAndVisible]; // } // [tmpController presentViewController:nav animated:!noAnimate completion:nil]; - self.inAppBrowserViewController.view.frame = CGRectMake(0,STATUSBAR_HEIGHT,self.inAppBrowserViewController.view.frame.size.width,self.inAppBrowserViewController.view.frame.size.height-STATUSBAR_HEIGHT); + self.inAppBrowserViewController.view.frame = CGRectMake(0,self.statusbarHieght,self.inAppBrowserViewController.view.frame.size.width,self.inAppBrowserViewController.view.frame.size.height - 10); [self.viewController.view addSubview:self.inAppBrowserViewController.view]; } }); @@ -938,7 +950,18 @@ BOOL isExiting = FALSE; [items replaceObjectAtIndex:buttonIndex withObject:self.closeButton]; [self.toolbar setItems:items]; } - +- (void)showStatusbar:(BOOL)show +{ + self.statusbar = show; +} +- (int)statusbarHieght +{ + if(self.statusbar) { + return [[UIApplication sharedApplication] statusBarFrame].size.height; + } else { + return 0; + } +} - (void)showLocationBar:(BOOL)show { CGRect locationbarFrame = self.addressLabel.frame; @@ -1122,8 +1145,8 @@ BOOL isExiting = FALSE; if (IsAtLeastiOSVersion(@"7.0") && !viewRenderedAtLeastOnce) { viewRenderedAtLeastOnce = TRUE; CGRect viewBounds = [self.webView bounds]; - viewBounds.origin.y = STATUSBAR_HEIGHT; - viewBounds.size.height = viewBounds.size.height - STATUSBAR_HEIGHT; + viewBounds.origin.y = self.statusbarHieght; + viewBounds.size.height = viewBounds.size.height - self.statusbarHieght; self.webView.frame = viewBounds; [[UIApplication sharedApplication] setStatusBarStyle:[self preferredStatusBarStyle]]; }