如何在 WPF 中使用 CEFSharp JavascriptObjectRepository

How to using CEFSharp JavascriptObjectRepository in WPF

我想要得到 javascript 响应,

然后按照cef文档去做,

这是我的一步,

首先创建一个html文件

...
<button onclick='test()'>click</button>
...
<script>
function test(){ 
  alert('123');
  callbackObj.getMessage('123');
}
</script>

然后我注册javascript回复方式

CefSharpSettings.LegacyJavascriptBindingEnabled = true;
this.MyBrowser.JavascriptObjectRepository.Register("callbackObj", new PagaJavaScriptResponse(), true);

并创建 class 来执行 PagaJavaScriptResponse

 public class PagaJavaScriptResponse
 {
   public void getMessage(string s)
   {
        ....
   }       
 }

下一步检查寄存器是否绑定

var isBound = this.MyBrowser.JavascriptObjectRepository.IsBound("callbackObj");

结果为真,

最后一步 url http://127.0.0.1/index.html

this.MyBrowser.Address = @"http://127.0.0.1:8887/test.html";

这里我认为当我点击按钮时它应该是 return 123 我在 C# 中的方法,但不是,

热对吗?

我尝试一个解决方案

在页面加载时执行此 javascript

this.MyBrowser.WebBrowser.ExecuteScriptAsyncWhenPageLoaded(@"(async function() {await CefSharp.BindObjectAsync('callbackObj', 'bound');})();");

它会起作用