2017-07-31 72 views
0

我正面臨着一種情況,當我需要在iOS上以編程方式關閉鍵盤時。爲了解決這個問題,我使用這段代碼:離子2鍵盤重新打開後關閉

Keyboard.close(); 

它關閉鍵盤,但每當我觸摸屏幕,它重新打開。有人遇到過這種情況嗎?謝謝!

+0

這是頁面使用https://ionicframework.com/docs/native/keyboard/? – 2017-08-01 08:18:37

+0

是的,你以前面對過這種情況嗎? –

+0

不,我沒有,你在哪裏把'Keyboard.close();'並在代碼中的任何一點'keyboard.show();'? – 2017-08-01 14:27:15

回答

0

顯然,當混合iframe和離子2頁時,Ionic 2有一些錯誤。在我的情況下,我從一個iframe取回,我需要關閉鍵盤。我設法解決這個問題的方法是在iframe中插入一個後退按鈕,從iframe發出一個事件並將偵聽器附加到Ionic 2應用程序,該應用程序從程序堆棧中以編程方式彈出最後一頁。通過使用此方法,鍵盤會自動關閉,您只需觸發事件即可返回一頁。希望這個答案可以幫助有同樣問題的人!

0

在模態中使用iframe時,我也遇到了ios 11中的這個問題。如果我使用this.keyboard.close()手動關閉鍵盤,它將在每次觸摸時重新打開。我終於通過 https://forum.ionicframework.com/t/keyboard-reopens-after-close-repeatedly-on-ios/107347/2 解決它在嵌入一個iframe中添加以下

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>