uni-app 【报Bug】plus.key.addEventListener("keydown",当打开新窗口时回车、确认按钮失效,应该是66
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-app
中 plus.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>
注意事项
- 焦点管理:确保新窗口在需要时获得焦点,有时候窗口焦点丢失会导致键盘事件不被触发。
- 事件绑定时机:
plusready
事件确保plus
API 可用后再绑定事件监听器。 - keyCode 校验:不同平台或键盘布局可能有不同的 keyCode,确保你处理的是正确的键。
通过上述方式,你应该能够在 uni-app
中正确处理不同窗口中的键盘事件,包括回车键和确认按钮。如果问题依旧存在,请检查是否有其他代码或配置干扰了事件监听。