RegisterJsObject CefSharp不起作用

时间:2015-02-12 09:38:32

标签: javascript c# wpf cefsharp

我有CefSharp和js沟通的问题。 这是我的结构。在我的MainWindow.xaml.cs中,我有:

chromium = new CefSharp.Wpf.ChromiumWebBrowser();
chromium.RegisterJsObject("jsInterface", new jsMapInterface());

其中 jsMapInterface 是一个带有方法的公共类。

在我的html / js文件夹中,我用:

调用C#方法
window.jsInterface.myTest();
//jsInterface.myTest();  //I have tested twice

其中myTest()是 jsMapInterface 类中的方法,但没有任何反应。我的错误在哪里?

谢谢你的建议。

2 个答案:

答案 0 :(得分:8)

在C#方面尝试使用UpperCasing,例如https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#3-how-do-you-expose-a-net-class-to-javascript

请注意下提到的MyTest()

CefSharp确实执行了名称修改。原因是它试图鼓励遵循JS方面的JS约定和那方的C#约定。

最后根据https://github.com/cefsharp/CefSharp/search?utf8=%E2%9C%93&q=BoundObject

的示例代码进行操作

答案 1 :(得分:0)

嗨,我想我可能会迟到了......但是看起来一切都很顺利......但也许你应该保留一个模块化参考new jsMapInterface()以确保它没有被摧毁/清理过。