Blame | Last modification | View Log | RSS feed
#import "IonicKeyboard.h"#import "UIWebViewExtension.h"#import <Cordova/CDVAvailability.h>@implementation IonicKeyboard@synthesize hideKeyboardAccessoryBar = _hideKeyboardAccessoryBar;@synthesize disableScroll = _disableScroll;//@synthesize styleDark = _styleDark;- (void)pluginInitialize {NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];__weak IonicKeyboard* weakSelf = self;//set defaultsself.hideKeyboardAccessoryBar = NO;self.disableScroll = NO;//self.styleDark = NO;_keyboardShowObserver = [nc addObserverForName:UIKeyboardWillShowNotificationobject:nilqueue:[NSOperationQueue mainQueue]usingBlock:^(NSNotification* notification) {CGRect keyboardFrame = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];keyboardFrame = [self.viewController.view convertRect:keyboardFrame fromView:nil];[weakSelf.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.plugins.Keyboard.isVisible = true; cordova.fireWindowEvent('native.keyboardshow', { 'keyboardHeight': %@ }); ", [@(keyboardFrame.size.height) stringValue]]];//deprecated[weakSelf.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireWindowEvent('native.showkeyboard', { 'keyboardHeight': %@ }); ", [@(keyboardFrame.size.height) stringValue]]];}];_keyboardHideObserver = [nc addObserverForName:UIKeyboardWillHideNotificationobject:nilqueue:[NSOperationQueue mainQueue]usingBlock:^(NSNotification* notification) {[weakSelf.commandDelegate evalJs:@"cordova.plugins.Keyboard.isVisible = false; cordova.fireWindowEvent('native.keyboardhide'); "];//deprecated[weakSelf.commandDelegate evalJs:@"cordova.fireWindowEvent('native.hidekeyboard'); "];}];}- (BOOL)disableScroll {return _disableScroll;}- (void)setDisableScroll:(BOOL)disableScroll {if (disableScroll == _disableScroll) {return;}if (disableScroll) {self.webView.scrollView.scrollEnabled = NO;self.webView.scrollView.delegate = self;}else {self.webView.scrollView.scrollEnabled = YES;self.webView.scrollView.delegate = nil;}_disableScroll = disableScroll;}- (BOOL)hideKeyboardAccessoryBar {return _hideKeyboardAccessoryBar;}- (void)setHideKeyboardAccessoryBar:(BOOL)hideKeyboardAccessoryBar {if (hideKeyboardAccessoryBar == _hideKeyboardAccessoryBar) {return;}if (hideKeyboardAccessoryBar) {self.webView.hackishlyHidesInputAccessoryView = YES;}else {self.webView.hackishlyHidesInputAccessoryView = NO;}_hideKeyboardAccessoryBar = hideKeyboardAccessoryBar;}/*- (BOOL)styleDark {return _styleDark;}- (void)setStyleDark:(BOOL)styleDark {if (styleDark == _styleDark) {return;}if (styleDark) {self.webView.styleDark = YES;}else {self.webView.styleDark = NO;}_styleDark = styleDark;}*//* ------------------------------------------------------------- */- (void)scrollViewDidScroll:(UIScrollView *)scrollView {[scrollView setContentOffset: CGPointZero];}/* ------------------------------------------------------------- */- (void)dealloc {NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];[nc removeObserver:self name:UIKeyboardWillShowNotification object:nil];[nc removeObserver:self name:UIKeyboardWillHideNotification object:nil];}/* ------------------------------------------------------------- */- (void) disableScroll:(CDVInvokedUrlCommand*)command {if (!command.arguments || ![command.arguments count]){return;}id value = [command.arguments objectAtIndex:0];self.disableScroll = [value boolValue];}- (void) hideKeyboardAccessoryBar:(CDVInvokedUrlCommand*)command {if (!command.arguments || ![command.arguments count]){return;}id value = [command.arguments objectAtIndex:0];self.hideKeyboardAccessoryBar = [value boolValue];}- (void) close:(CDVInvokedUrlCommand*)command {[self.webView endEditing:YES];}- (void) show:(CDVInvokedUrlCommand*)command {NSLog(@"Showing keyboard not supported in iOS due to platform limitations.");}/*- (void) styleDark:(CDVInvokedUrlCommand*)command {if (!command.arguments || ![command.arguments count]){return;}id value = [command.arguments objectAtIndex:0];self.styleDark = [value boolValue];}*/@end