首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Tizen studio,可穿戴设备,web应用程序)如何检测长时间按下后端硬件按钮?

(Tizen studio,可穿戴设备,web应用程序)如何检测长时间按下后端硬件按钮?
EN

Stack Overflow用户
提问于 2021-05-28 04:05:16
回答 2查看 84关注 0票数 0

我正在为三星可穿戴设备开发一个web应用程序,我想检测用户长时间按下硬件后退按钮的情况。

到目前为止,我找到的唯一信息是:

代码语言:javascript
复制
document.addEventListener('tizenhwkey', function(e) {...});

问题出在哪里?此事件仅在后退按钮被释放时触发,但不幸的是,它不会在后退按钮被按下时触发-并且用于检测在后退按钮被按下和被释放时需要信息时的长按。

有什么办法可以检测到长时间按下后退硬件按钮吗?

EN

回答 2

Stack Overflow用户

发布于 2021-05-28 15:12:34

我查过文件了。但是Tizen平台没有提供区分按下和释放硬件键的方法。

https://docs.tizen.org/application/web/guides/tau/event-handling/

票数 0
EN

Stack Overflow用户

发布于 2022-01-26 13:46:34

Tizen Web确实没有办法检测到长时间的新闻。另一种方法是检测快速双按,而不是长按。这可以使用计时器来完成。

例如。

代码语言:javascript
复制
const doubleClickWaitTime = 400;
let doubleClickTimeout = -1;

window.addEventListener('tizenhwkey', function(ev) {
    if (ev.keyName === 'back') {
      if (doubleClickTimeout === -1) {
        // First click of back button
        doubleClickTimeout = setTimeout(() => {
          doubleClickTimeout = -1;
          backButtonSinglePress();
        }, doubleClickWaitTime);
      } else {
        // Second click of back button
        clearTimeout(doubleClickTimeout);
        doubleClickTimeout = -1;
        backButtonDoublePress();
      }
    }
});

function backButtonSinglePress() {
  // Single press
}

function backButtonDoublePress() {
  // Double press
}

这将执行以下操作:

  • 当用户单击硬件键时,将启动一个计时器,该计时器在此期间再次按下硬件按钮后触发一个函数,取消计时器并调用backButtonDoublePress()
  • 如果用户不再按硬件按钮,则计时器将触发并在重置计时器后执行backButtonSinglePress()

可以修改doubleClickWaitTime变量,让用户有更多时间双击。但是,延迟时间越长,触发单个单击事件所需的时间就越长。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67729210

复制
相关文章

相似问题

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