如何隐藏软键盘并保持输入焦点?

7
我有一个运行Android 4.4.4的条形码扫描仪页面(Honeywell CT50), 当输入文本框获得焦点时,软键盘会自动弹出。 有没有解决方案可以隐藏它? 我已经阅读了建议,大多数是使输入失去焦点或只读, 但我需要保持输入的焦点以读取条形码。
我尝试过: 1.在onfocus事件中执行event.preventDefault(),但不起作用。 2.在document.keypress()上获取条形码,参考以下帖子中的解决方案,但我的扫描器没有返回任何结果。 javascript - 隐藏移动默认键盘但保持输入字段活动 欢迎提出任何想法。

你为什么要提到JavaScript?它不是本地应用程序吗? - Chisko
1
你找到解决方案了吗?我们在一个使用同一设备上的条形码扫描器的 Web 应用程序中遇到了相同的问题,需要在保持文本字段聚焦的同时隐藏键盘。 - pixelwiz
2个回答

4

虽然这个话题比较老,但是以下方法至少在 Android 6 和 7 上有效:

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

在输入框获得焦点之前,将其设置为readOnly = true。
这样键盘就不会出现了。
然后再将输入框设置为readOnly = false,但不要立即执行。
这样你就可以使用扫描仪而无需弹出键盘了。


这会导致键盘闪烁,但这是我能找到的最佳解决方案。 - raklos
1
据我所知,这在iOS上不起作用。或者说,输入框显示为聚焦状态,键盘保持关闭,但操作系统不允许将文本输入到聚焦的文本框中(可能有一些逻辑,即如果键盘不活动,则没有人可以输入文本)。遗憾的是,即使我手动点击文本框,键盘也不会显示,我仍然无法输入文本。我必须先点击其他地方以取消聚焦,然后再次点击才能使其重新工作。 - CletusW
它在Honeywell EDA51 PDA的Android 10上运行良好,谢谢。 - MayGodBlessYou

1

对我来说,某个时候起作用的是将ion-input type="text"设置为只读,但现在设置该属性时无效。也许可以试试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接