【问题标题】:WebView2 - Capture Keyboard EventsWebView2 - 捕获键盘事件
【发布时间】:2021-04-14 17:42:19
【问题描述】:

我注意到“KeyUp”事件仅捕获一些键(上、下、左、右、Ctrl、转义)。在 WebBrowser 中,该事件捕获键盘中的所有键。我们如何添加添加按键按下或释放的事件?

谢谢

WebView2 mywebView = new WebView2();
mywebView.KeyUp += MywebView_KeyUp;

【问题讨论】:

    标签: webview2


    【解决方案1】:

    在 WebView2 中,您必须将onkeyup 属性添加到 HTML 中的输入标记。当一个键被按下时,需要调用一个 javascript 方法来处理该事件或向主机发送一个“webmessage”来处理它。

    这是我在 WebView2 中为“keyup”事件工作所做的:

    为输入标签定义“onkeyup”事件(我使用 HtmlTextWriter,但它应该没关系)。我调用名为“CallHost”的javascript方法

    htmlWriter.AddAttribute("onkeyup", "CallHost(this);");
    

    向主机发送响应消息(这将被 C# 中的“WebMessageReceived”事件捕获):

    function CallHost(element) 
    {
            window.chrome.webview.postMessage(
                                    JSON.stringify({
                                    ElementId: element.id,
                                    Type: element.tagName,
                                    Name: element.name,
                                    Value: element.value
                                    })
                                 );
     }
    

    C# 事件处理程序:

    private void MyWebView2_WebMessageReceived(object sender, CoreWebView2WebMessageReceivedEventArgs args)
    {
            MyWebMessage message = JsonConvert.DeserializeObject<MyWebMessage>(args.TryGetWebMessageAsString());
         /*handle keyup*/
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-10
      • 2012-02-01
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      相关资源
      最近更新 更多