.net 如何从WebView2中的ExecuteScript获取同步返回

.net 如何从WebView2中的ExecuteScript获取同步返回,.net,winforms,webview,.net,Winforms,Webview,只需在此尝试Winforms WebView2: 试图找出如何同步使用。以任何方式阻塞线程都会阻止脚本运行 Friend Function ExecuteSync(Script As String) As String ExecuteScript(Script, Sub(e) ExecuteSync = e.ResultAsJson) End Function 非常感谢您的帮助,因为我找不到任何示例来说明如何操作。我不知道Michael版本的webview2包装器,但如果您使用官方的M

只需在此尝试Winforms WebView2:

试图找出如何同步使用。以任何方式阻塞线程都会阻止脚本运行

Friend Function ExecuteSync(Script As String) As String
    ExecuteScript(Script, Sub(e) ExecuteSync = e.ResultAsJson)
End Function

非常感谢您的帮助,因为我找不到任何示例来说明如何操作。

我不知道Michael版本的webview2包装器,但如果您使用官方的Microsoft版本:

它的方法和属性名称与Michael的版本基本相同

然后,只需使用主机对象数组中的sync对象(使用以下代码),就可以从JavaScript代码中获得对实现的任何对象的sync调用:

var mynum = chrome.webview.hostObjects.sample.myMethod().sync();
在C#(抱歉,我不知道VB的等价物)中,您将在类中实现“myMethod”,如下所示:

using Microsoft.Web.WebView2.Core;
using System.Runtime.InteropServices;

namespace EdgeWebView2Test.MyClasses
{
  [ClassInterface(ClassInterfaceType.AutoDual)]
  [ComVisible(true)]
  public class MyJavaScriptApiClass
  {
    public int MyMethod()
    {
      return 10;
    }
  }
}