rob_
rob_

Reputation: 144

Ionic 2 Keyboard reopening after close

I'm facing a situation when I need to close the keyboard programmatically on iOS. For solving it I'm using this piece of code:

Keyboard.close();

It closes the keyboard but whenever I touch the screen, it reopens. Has someone else faced this situation? Thanks!

Upvotes: 1

Views: 462

Answers (2)

johnny
johnny

Reputation: 5097

I also encounter this problem in ios 11 when using an iframe inside a Modal. If I use this.keyboard.close() to close the keyboard manually, it will reopen in each touch. I finally solve it by https://forum.ionicframework.com/t/keyboard-reopens-after-close-repeatedly-on-ios/107347/2 In the page that embeds a iframe add the following

embed.ts

declare var cordova;

@ViewChild('ioshack') ioshack;

ionViewWillLeave() {
  if(cordova.plugins.Keyboard.isVisible){
    this.ioshack.setFocus();
  }
}

embed.html

<ion-content>
    <iframe [src]="url" width="100%" height="100%" frameborder="0" allowfullscreen>
    </iframe>
    <ion-input #ioshack type="text" value="" class="ioshack" style="height: 0px;">       </ion-input>
</ion-content>

Upvotes: 2

rob_
rob_

Reputation: 144

Apparently Ionic 2 has some bugs when mixing iframes and Ionic 2 pages. In my case I was getting back from an iframe and I need the keyboard to close. The way I managed to solve this issue was by inserting a back button in the iframe, emitting an event from the iframe and attaching a listener to the Ionic 2 app which programmatically pops the last page from the stack. By using this method the keyboard gets automatically closed, you just need to trigger the event in order to go one page back. Hope this answer helps someone that has the same issue!

Upvotes: 0

Related Questions