uni-app 【报Bug】plus.key.addEventListener("keydown",当打开新窗口时回车、确认按钮失效,应该是66

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app 【报Bug】plus.key.addEventListener(“keydown”,当打开新窗口时回车、确认按钮失效,应该是66

操作步骤

  • plus.key.addEventListener("keydown",当打开新窗口时 回车、确认按钮失效 应该是66
  • 第一次监听没有任何问题,openwin后 确认按钮失效其他的正常

预期结果

  • 修复好

实际结果

  • 21年有个帖子递交了,现在还没有回复
  • 相关帖子

bug描述

  • plus.key.addEventListener("keydown",当打开新窗口时 回车、确认按钮失效 应该是66
  • 第一次监听没有任何问题,openwin后 确认按钮失效其他的正常
开发环境 版本号 项目创建方式
PC开发环境操作系统 Windows HBuilderX
PC开发环境操作系统版本号 win10 -
HBuilderX类型 正式 -
HBuilderX版本号 3.8.1 -
手机系统 Android -
手机系统版本号 Android 10 -
手机厂商 华为 -
手机机型 nova7 -
页面类型 nvue -
vue版本 vue3 -
打包方式 云端 -

7 回复

怎么处理?


2024年了这个问题官方还没修复吗

2025年了这个问题官方还没修复吗

如果真不行,就自己变通下,我遇上这种情况都是自己写代码自己修复下

回复 老哥教教我: 老哥教教我

回复 6***@qq.com: 我这个问题没弄过,老弟你自己想想办法把

在处理 uni-appplus.key.addEventListener("keydown") 事件监听时遇到打开新窗口后回车或确认按钮失效的问题,这通常是由于事件监听的作用域或焦点管理不当导致的。以下是一个简化的代码示例,展示如何在 uni-app 中正确设置键盘事件监听,并确保新窗口中的按键事件也能被正确处理。

首先,确保你的项目已经正确引入了 5+ App(HBuilderX) 的相关扩展,因为 plus API 是这部分扩展提供的。

主窗口代码示例

在主窗口(或你的应用入口文件)中,你可以这样设置键盘事件监听:

// 监听全局键盘按下事件
plus.key.addEventListener('keydown', function(e) {
    console.log('Keycode: ' + e.keyCode);
    if (e.keyCode === 13) { // 13 是回车键的 keyCode
        console.log('Enter key pressed');
        // 在这里处理回车键逻辑,比如打开新窗口
        openNewWindow();
    }
});

function openNewWindow() {
    var newWindow = plus.webview.create('new-page.html', '_blank', {
        top: '0px',
        bottom: '0px'
    });
    newWindow.show();
}

新窗口代码示例 (new-page.html)

在新窗口中,你也需要设置键盘事件监听,确保回车键或其他按键在新窗口中也能被捕获:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>New Window</title>
    <script type="text/javascript">
        document.addEventListener('plusready', function() {
            plus.key.addEventListener('keydown', function(e) {
                console.log('New Window Keycode: ' + e.keyCode);
                if (e.keyCode === 13) {
                    console.log('Enter key pressed in new window');
                    // 在这里处理新窗口中的回车键逻辑
                }
            });
        });
    </script>
</head>
<body>
    <h1>This is a new window</h1>
</body>
</html>

注意事项

  1. 焦点管理:确保新窗口在需要时获得焦点,有时候窗口焦点丢失会导致键盘事件不被触发。
  2. 事件绑定时机plusready 事件确保 plus API 可用后再绑定事件监听器。
  3. keyCode 校验:不同平台或键盘布局可能有不同的 keyCode,确保你处理的是正确的键。

通过上述方式,你应该能够在 uni-app 中正确处理不同窗口中的键盘事件,包括回车键和确认按钮。如果问题依旧存在,请检查是否有其他代码或配置干扰了事件监听。

回到顶部