Ionic-v4键盘覆盖iOS 13中的输入字段

时间:2019-10-13 18:37:28

标签: ios angular ionic-framework ionic4 ios13

我已经尝试解决这个特定的错误很长时间了,但是在修复它方面没有任何进展。

无论如何,该错误基本上是在单击输入时,键盘将覆盖输入,直到我开始输入数字为止,此时它将正确向下滚动。(此外,它突然失去了半透明性,变得坚固了...我不确定是什么原因引起的...)'

我已经卸载了ionic-plugin-keyboard,并且将cordova-plugin-ionic-keyboard降级到2.0.5版本并不能解决我的问题(我当前正在运行v2.2.0)。我还在运行最新版本的cordova-plugin-ionic-webview(v4.1.2)

Here's an imgur link showing the bug in action

谢谢!

1 个答案:

答案 0 :(得分:2)

对于iOS 13不稳定 对于IOS 13,“ cordova-plugin-ionic-keyboard” KeyboardResize功能不稳定。 git上的问题仍然没有解决。 View not resizing on iOS

我在Android和IOS中都使用了它,因此我不得不在代码中提出一种解决方法(顺便说一句,但工作正常,所以我将其放在此处)。

步骤1:将config.xml的大小调整为无。

<preference name="KeyboardResize" value="false" />

第2步:在页脚上方添加一个空div,将显示设置为无。

<div class="keyboardFix" style="display:none"></div>

第3步:现在,将.keyboardFix类的高度设置为等于键盘高度,并使用“ keyboardWillShow”事件使其在键盘之前可见。

  window.addEventListener("keyboardWillShow", function (evt) {
    if (rootParams.baseModel.cordovaDevice() && rootParams.baseModel.cordovaDevice() == 'IOS') {
              $(".keyboardFix").height(evt.keyboardHeight * 0.9 );
              $(".keyboardFix").css("display","block");
    }
  });

第4步:在键盘隐藏之前,Make就消失了。

  window.addEventListener("keyboardWillHide", function (evt) {
    if (rootParams.baseModel.cordovaDevice() && rootParams.baseModel.cordovaDevice() == 'IOS'){
              $(".keyboardFix").height(0);
              $(".keyboardFix").css("display","none");
    }
  });

注意:仅当您为跨平台(即Android)使用相同的用户界面时才需要条件