【问题标题】:How to hide soft keyboard and keep input on focus如何隐藏软键盘并使输入保持焦点
【发布时间】:2018-07-16 01:44:23
【问题描述】:

我有一个运行 Android 4.4.4 的条码扫描仪 (honeywell ct50) 的页面, 当输入文本框处于焦点时,软键盘会自动弹出。 有什么办法可以隐藏吗? 我已阅读建议,主要是使输入失去焦点或只读, 但我需要将注意力集中在输入上才能读取条形码。

我试过了 1.在onfocus事件中执行event.preventDefault(),不起作用。 2. 获取document.keypress() 上的条形码,帖子中的解决方案如下,但我的扫描仪没有得到任何信息。 javascript - hide mobile default keyboard but keep input field active

欢迎提出任何想法。

【问题讨论】:

  • 你为什么提到javascript?不是原生应用吗?
  • 您找到解决方案了吗,我们在同一设备上使用条形码扫描仪的 Web 应用中遇到了同样的问题,需要隐藏键盘同时保持焦点在文本字段上

标签: javascript android google-chrome mobile barcode-scanner


【解决方案1】:

老话题,但这是至少适用于 android 6 和 7 的解决方案:

yourInput = document.getElementById('yourInputElement');
yourInput.readOnly = true;
yourInput.focus();
setTimeout(function(){document.getElementById('yourInputElement').readOnly = false;}, 50);

您将输入放在 readOnly = true 之前。
键盘不会出现。
然后您将输入放回 readOnly = false 但不是立即放回。
因此,您可以在不弹出键盘的情况下使用扫描仪。

【讨论】:

  • 这会使键盘闪烁,但我能找到最好的解决方案
  • AFAICT 这在 iOS 上不起作用。或者更确切地说,输入显示为焦点且键盘保持向下,但操作系统不允许将文本输入到焦点文本框中(大概它有一些逻辑表明如果键盘未激活,那么没有人可以输入文本) .遗憾的是,即使我随后手动点击文本框,键盘也不会显示,我仍然无法输入文本。我必须先点击其他地方以使其模糊,然后然后点击它才能再次工作。
  • 它在霍尼韦尔 EDA51 PDA 的 Android 10 上运行良好,谢谢
【解决方案2】:

对我来说,在某些时候起作用的是将 ion-input type="text" 设置为只读,但现在在设置该属性时它不起作用。不妨试试看。

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2019-06-17
    相关资源
    最近更新 更多