add 添加statusbar参数配置是否显示状态栏

This commit is contained in:
zher52 2020-09-17 17:11:07 +08:00
parent 694ffb52eb
commit 031d07d47b
4 changed files with 40 additions and 6 deletions

View File

@ -21,6 +21,7 @@
@interface CDVInAppBrowserOptions : NSObject {} @interface CDVInAppBrowserOptions : NSObject {}
@property (nonatomic, assign) BOOL location; @property (nonatomic, assign) BOOL location;
@property (nonatomic, assign) BOOL statusbar;
@property (nonatomic, assign) BOOL toolbar; @property (nonatomic, assign) BOOL toolbar;
@property (nonatomic, copy) NSString* closebuttoncaption; @property (nonatomic, copy) NSString* closebuttoncaption;
@property (nonatomic, copy) NSString* closebuttoncolor; @property (nonatomic, copy) NSString* closebuttoncolor;

View File

@ -27,6 +27,7 @@
// default values // default values
self.location = YES; self.location = YES;
self.toolbar = YES; self.toolbar = YES;
self.statusbar = YES;
self.closebuttoncaption = nil; self.closebuttoncaption = nil;
self.toolbarposition = @"bottom"; self.toolbarposition = @"bottom";
self.cleardata = NO; self.cleardata = NO;

View File

@ -39,6 +39,8 @@
@property (nonatomic, copy) NSString* callbackId; @property (nonatomic, copy) NSString* callbackId;
@property (nonatomic, copy) NSRegularExpression *callbackIdPattern; @property (nonatomic, copy) NSRegularExpression *callbackIdPattern;
@property (nonatomic) BOOL* statusbar;
+ (id) getInstance; + (id) getInstance;
- (void)open:(CDVInvokedUrlCommand*)command; - (void)open:(CDVInvokedUrlCommand*)command;
- (void)close:(CDVInvokedUrlCommand*)command; - (void)close:(CDVInvokedUrlCommand*)command;
@ -48,6 +50,9 @@
- (void)back:(CDVInvokedUrlCommand*)command; - (void)back:(CDVInvokedUrlCommand*)command;
- (void)loadAfterBeforeload:(CDVInvokedUrlCommand*)command; - (void)loadAfterBeforeload:(CDVInvokedUrlCommand*)command;
- (void)showStatusbar:(BOOL)show;
- (int)statusbarHieght;
@end @end
@interface CDVWKInAppBrowserViewController : UIViewController <CDVScreenOrientationDelegate,WKNavigationDelegate,WKUIDelegate,WKScriptMessageHandler>{ @interface CDVWKInAppBrowserViewController : UIViewController <CDVScreenOrientationDelegate,WKNavigationDelegate,WKUIDelegate,WKScriptMessageHandler>{
@ -71,8 +76,12 @@
@property (nonatomic, weak) CDVWKInAppBrowser* navigationDelegate; @property (nonatomic, weak) CDVWKInAppBrowser* navigationDelegate;
@property (nonatomic) NSURL* currentURL; @property (nonatomic) NSURL* currentURL;
@property (nonatomic) BOOL* statusbar;
- (void)close; - (void)close;
- (void)navigateTo:(NSURL*)url; - (void)navigateTo:(NSURL*)url;
- (void)showStatusbar:(BOOL)show;
- (int)statusbarHieght;
- (void)showLocationBar:(BOOL)show; - (void)showLocationBar:(BOOL)show;
- (void)showToolBar:(BOOL)show : (NSString *) toolbarPosition; - (void)showToolBar:(BOOL)show : (NSString *) toolbarPosition;
- (void)setCloseButtonTitle:(NSString*)title : (NSString*) colorString : (int) buttonIndex; - (void)setCloseButtonTitle:(NSString*)title : (NSString*) colorString : (int) buttonIndex;

View File

@ -35,7 +35,6 @@
#define IAB_BRIDGE_NAME @"cordova_iab" #define IAB_BRIDGE_NAME @"cordova_iab"
#define TOOLBAR_HEIGHT 44.0 #define TOOLBAR_HEIGHT 44.0
#define STATUSBAR_HEIGHT 0
#define LOCATIONBAR_HEIGHT 21.0 #define LOCATIONBAR_HEIGHT 21.0
#define FOOTER_HEIGHT ((TOOLBAR_HEIGHT) + (LOCATIONBAR_HEIGHT)) #define FOOTER_HEIGHT ((TOOLBAR_HEIGHT) + (LOCATIONBAR_HEIGHT))
@ -67,7 +66,18 @@ static CDVWKInAppBrowser* instance = nil;
{ {
[self close: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 - (void)close:(CDVInvokedUrlCommand*)command
{ {
if (self.inAppBrowserViewController == nil) { 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 showLocationBar:browserOptions.location];
[self.inAppBrowserViewController showToolBar:browserOptions.toolbar :browserOptions.toolbarposition]; [self.inAppBrowserViewController showToolBar:browserOptions.toolbar :browserOptions.toolbarposition];
if (browserOptions.closebuttoncaption != nil || browserOptions.closebuttoncolor != nil) { if (browserOptions.closebuttoncaption != nil || browserOptions.closebuttoncolor != nil) {
@ -315,7 +327,7 @@ static CDVWKInAppBrowser* instance = nil;
// [self->tmpWindow makeKeyAndVisible]; // [self->tmpWindow makeKeyAndVisible];
// } // }
// [tmpController presentViewController:nav animated:!noAnimate completion:nil]; // [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]; [self.viewController.view addSubview:self.inAppBrowserViewController.view];
} }
}); });
@ -938,7 +950,18 @@ BOOL isExiting = FALSE;
[items replaceObjectAtIndex:buttonIndex withObject:self.closeButton]; [items replaceObjectAtIndex:buttonIndex withObject:self.closeButton];
[self.toolbar setItems:items]; [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 - (void)showLocationBar:(BOOL)show
{ {
CGRect locationbarFrame = self.addressLabel.frame; CGRect locationbarFrame = self.addressLabel.frame;
@ -1122,8 +1145,8 @@ BOOL isExiting = FALSE;
if (IsAtLeastiOSVersion(@"7.0") && !viewRenderedAtLeastOnce) { if (IsAtLeastiOSVersion(@"7.0") && !viewRenderedAtLeastOnce) {
viewRenderedAtLeastOnce = TRUE; viewRenderedAtLeastOnce = TRUE;
CGRect viewBounds = [self.webView bounds]; CGRect viewBounds = [self.webView bounds];
viewBounds.origin.y = STATUSBAR_HEIGHT; viewBounds.origin.y = self.statusbarHieght;
viewBounds.size.height = viewBounds.size.height - STATUSBAR_HEIGHT; viewBounds.size.height = viewBounds.size.height - self.statusbarHieght;
self.webView.frame = viewBounds; self.webView.frame = viewBounds;
[[UIApplication sharedApplication] setStatusBarStyle:[self preferredStatusBarStyle]]; [[UIApplication sharedApplication] setStatusBarStyle:[self preferredStatusBarStyle]];
} }