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.
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 -
The Ionic View app is not a native-friendly representation of our code
What version of Ionic does the View app run on? How quickly are you folk updating it?
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?
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.
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.
Just looking for a confirmation that there are known issues with the Keyboard plugin in Ionic View
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:
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 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.