【问题标题】:Ionic-v4 Keyboard covering input field in iOS 13Ionic-v4 键盘覆盖 iOS 13 中的输入字段
【发布时间】:2019-10-13 18:37:28
【问题描述】:

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

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

我已经卸载了 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

谢谢!

【问题讨论】:

  • 我不知道这个问题,我知道这不是一个解决方案,但是,为什么不尝试让你的屏幕更大呢?我认为只有.body{margin-bottom:50rem} 才能让您的应用有机会滚动
  • 尝试与KeyboardResizeMode一起玩,更多信息您可以在此页面上找到ionicframework.com/docs/enterprise/keyboard

标签: ios angular ionic-framework ionic4 ios13


【解决方案1】:

对于 IOS 13 不稳定 “cordova-plugin-ionic-keyboard”KeyboardResize 功能对于 IOS 13 不稳定。 问题在 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)使用相同的 UI 时才需要条件

【讨论】:

    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2019-01-30
    • 1970-01-01
    相关资源
    最近更新 更多