首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓WebVIew键盘长键按压

安卓WebVIew键盘长键按压
EN

Stack Overflow用户
提问于 2021-07-18 22:02:57
回答 1查看 235关注 0票数 0

任何人都知道如何在Android WebView中处理键盘键的长按压。我曾假设我只需使用KeyboardEvent property (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat),但是当我用下面的代码测试它时,返回的重复属性始终是假的,尽管按住了键。

代码语言:javascript
复制
document.addEventListener('keydown', logKey);

function logKey(event) {
    console.log(event.repeat);
}

上面的代码在桌面浏览器上按预期工作,并返回false一次,然后重复返回true,同时按住键。然而,在Android WebView中,它多次返回false。

有什么想法,是什么问题,或另一种方式来处理长键盘按键?

为了澄清更新,我试图绑定到长按键事件,而不是忽略它。如果键被按住一段时间,我想触发一个函数。

EN

回答 1

Stack Overflow用户

发布于 2021-07-19 00:44:02

您可以重写document.onkeydown函数,然后通过反抖动机制处理相应的键值。毕竟,我们需要处理的是关键价值,而不是长钥匙。守则如下:

代码语言:javascript
复制
var throttle = function(func, delay) {
            var prev = Date.now();
            return function() {
                var context = this;
                var args = arguments;
                var now = Date.now();
                if (now - prev >= delay) {
                    func.apply(context, args);
                    prev = Date.now();
                }
            }
        }
function onkeypress(evt) {
    var keycode = evt.which ? evt.which : evt.keyCode;
    console.log(keycode);
}

document.onkeypress = throttle(onkeypress, 500);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68433396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档