Ionic View app Keyboard issue

Hey, I’m building an iOS app and am testing it on the Ionic View app. I included a login screen into my app by using the Signin+Tabs example on CodePen. While testing this on the Ionic View app, I noticed that the keyboard acts like it would in a webview - it’s pushing the entire view up when pulling the keyboard from the bottom.

I assume this is because the Ionic View app simply takes my www folder and shows it to me in a webview. This would explain the behavior.

To investigate, I added the Ionic Keyboard Plugin using “cordova plugin add GitHub - ionic-team/ionic-plugin-keyboard: Ionic Keyboard Plugin for Cordova” and then added the following to my Signin controller -

cordova.plugins.Keyboard.disableScroll(true);

and

<feature name="Keyboard">
            <param name="ios-package" value="IonicKeyboard" onload="true" />
        </feature>

to the config.xml…

This is based on the docs. I don’t know what this does in the Ionic View app because I didn’t take it till there. The iOS Emulator works fine without the plugin, but when I add the above line, the iOS Emulator shows the view pushed up, as though the keyboard is always present.

I’m hoping someone can shed light into the following issues -

  1. The Ionic View app is not a native-friendly representation of our code
  2. What version of Ionic does the View app run on? How quickly are you folk updating it?
  3. Is my use of the Keyboard plugin wrong? Since I don’t need the plugin when I see the app in the iOS Emulator, can I assume the app will work fine on my device too?
2 Likes

I know your post was months ago, but I wanted to provide an update: The Ionic View app is still in development. We’ll let you know when it’s ready for widespread use. Sorry for the delay in responding.

No problem! I’m still waiting for a good release, but development work never stops! :smile:

Thanks for the update…

When pushing on a device, the plugins work perfectly. It’s still not giving the appropriate behavior in the ionic view app however…

I believe the ionic view app doesn’t pick up the app specific plugins… Is that correct @katiegv?

Does anyone know if the Keyboard plugin is fully compatible with Ionic View? I see it listed in supported plugins but am not seeing that KeyboardDisplayRequiresUserAction set to false is respected, and still see my accessory bar when I’m hiding it.

I have a plugin that autofocuses an input (calls .focus() in JS) and brings up keyboard at the same time, and a few people have noted an issue with the input not being focused on ios 8.4 and above. When I run on my emulator it works as expected, but on Ionic View you need to double tap. :frowning:

Just looking for a confirmation that there are known issues with the Keyboard plugin in Ionic View

Ionic View app ID ab56e8bd

Thanks!!

1 Like

Yeah, I’m having the same issue.

Here’s my run code for my app—disabling scroll and disabling the accessory bar are both ignored (although I currently have the accessory bar set to true because I do want it):

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);
      cordova.plugins.Keyboard.disableScroll(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }
  });
})

Wondering if we can get an update on this. Thanks!

Katie, if I use cordova.plugins.Keyboard.disableScroll(true); in my run function, will it be respected in a production app even if it doesn’t have the desired effect in Ionic View?

Can you try wrapping the keyboard function calls in a timeout? It seems Cordova doesn’t load immediately in view, see this comment for an alternative to timeouts:

https://github.com/driftyco/ionic-view-issues/issues/52#issuecomment-99250866

To answer your last question - yes this should work correctly in a production app. We recommend testing your app on multiple devices as you may have unexpected behavior elsewhere.

Hey @brandyshea, thanks for your reply :slight_smile: I think I figured out that this behavior was happening because I was using ion-header-bar rather than ion-nav-bar. Form inputs, which scroll to center the element in the view when the keyboard opens, seem to treat ion-header-bar as static content that’s part of the view, whereas ion-nav-bar is treated as a fixed navigational element and the rest of the view scrolls up behind it when the keyboard opens.

I had this problem because the API Docs and the Getting Started Guide don’t seem to make the distinction between these two elements very clear.