【发布时间】:2020-11-03 11:33:13
【问题描述】:
我想截取Webview2里面的Tab键。
我在add_AcceleratorKeyPressed注册的ICoreWebView2AcceleratorKeyPressedEventHandler可以拦截很多功能键
但某些键(如光标键和 TAB 键)不会调用此事件处理程序。 F5键也一样,接缝有些键是保留的,奇怪的是位置键up、down、pos1、end都可以截取。
因为 WebView2 本身的窗口位于另一个进程中,所以我没有机会使用标准子类化,我想避免使用钩子进行子类化。
【问题讨论】:
-
你写了一个javascript
keydown事件处理程序,然后你可以使用window.chrome.webview.postMessage向WebView2控件发送消息。 -
感谢您的回答。您是否有任何链接或来源显示 Win32/COM 应用程序的这种基本用途?
-
此页面:docs.microsoft.com/da-dk/microsoft-edge/webview2/gettingstarted/… 展示了如何注入脚本并接收消息。
-
它不适用于 TAB 键,因为 TAB 不被视为 Accelerator Keys。我同意波尔的观点。您可以使用here 中的
postMessage在主机和Web 内容之间进行通信。 -
我找到了一个更详细的 WebView2 C++ 示例,并且有一段关于 Communicating the WebViews 的段落。它有示例展示如何使用
window.chrome.webview.postMessage并在 JavaScript 端为接收到的消息添加事件侦听器。也可以参考一下。
标签: c++ com microsoft-edge webview2