l***@leyifan.com
l***@leyifan.com
  • 发布:2025-07-11 18:56
  • 更新:2025-07-14 10:04
  • 阅读:56

【报Bug】uni小程序 SDK中,宿主App中MainActivity内的dispatchKeyEvent等事件无法监听

分类:uni小程序sdk

产品分类: uni小程序SDK

手机系统: Android

手机系统版本号: Android 10

手机厂商: PDA

手机机型: PDA

页面类型: vue

SDK版本号: 4.57

示例代码:
// ✅ 监听 FN 键(KeyCode=119)  
    @Override  
    public boolean dispatchKeyEvent(KeyEvent event) {  
        if (event.getKeyCode() == 119) { // FN 键  
            if (event.getAction() == KeyEvent.ACTION_UP) {  
                Log.d("KeyEvent", "FN键松开,尝试发送事件");  
                if (runningMP != null) {  
                    try {  
                        JSONObject obj = new JSONObject();  
                        obj.put("keyCode", 119);  
                        boolean success = runningMP.sendUniMPEvent("onFnButtonDown", obj);  
                        Log.d("KeyEvent", "事件发送结果: " + success);  
                        return true; // 拦截 FN 键  
                    } catch (JSONException e) {  
                        Log.e("KeyEvent", "JSON 异常", e);  
                    }  
                }  
            }  
            return true; // 拦截 FN 键的所有事件(DOWN 和 UP)  
        }  
        return super.dispatchKeyEvent(event);  
    }

操作步骤:

运行uni小程序 SDK demo,监听dispatchKeyEvent,发现未打开小程序之前点击安卓系统返回按钮dispatchKeyEvent可以正常触发,在打开小程序后dispatchKeyEvent不再触发

预期结果:

dispatchKeyEvent在任何情况下都可以正常触发,或者有无在打开小程序下监听系统按键的方案?我们设备是PDA,需要监听系统按键的点击。

实际结果:

在打开小程序后无法监听dispatchKeyEvent事件

bug描述:

uni小程序 SDK中,在打开小程序之后,宿主App中MainActivity内的dispatchKeyEvent等事件无法监听。如果未打开小程序,可以正常监听。因为打开小程序打开了新的进程,旧的宿主应用无法监听相关事件。

2025-07-11 18:56 负责人:无 分享
已邀请:
l***@leyifan.com

l***@leyifan.com (作者)

麻烦看一下~

要回复问题请先登录注册