// ✅ 监听 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);
}

- 发布:2025-07-11 18:56
- 更新:2025-07-14 10:04
- 阅读:56
产品分类: uni小程序SDK
手机系统: Android
手机系统版本号: Android 10
手机厂商: PDA
手机机型: PDA
页面类型: vue
SDK版本号: 4.57
示例代码:
操作步骤:
运行uni小程序 SDK demo,监听dispatchKeyEvent,发现未打开小程序之前点击安卓系统返回按钮dispatchKeyEvent可以正常触发,在打开小程序后dispatchKeyEvent不再触发
运行uni小程序 SDK demo,监听dispatchKeyEvent,发现未打开小程序之前点击安卓系统返回按钮dispatchKeyEvent可以正常触发,在打开小程序后dispatchKeyEvent不再触发
预期结果:
dispatchKeyEvent在任何情况下都可以正常触发,或者有无在打开小程序下监听系统按键的方案?我们设备是PDA,需要监听系统按键的点击。
dispatchKeyEvent在任何情况下都可以正常触发,或者有无在打开小程序下监听系统按键的方案?我们设备是PDA,需要监听系统按键的点击。
实际结果:
在打开小程序后无法监听dispatchKeyEvent事件
在打开小程序后无法监听dispatchKeyEvent事件
bug描述:
uni小程序 SDK中,在打开小程序之后,宿主App中MainActivity内的dispatchKeyEvent等事件无法监听。如果未打开小程序,可以正常监听。因为打开小程序打开了新的进程,旧的宿主应用无法监听相关事件。
1 个回复
l***@leyifan.com (作者)
麻烦看一下~