我有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 类中的方法,但没有任何反应。我的错误在哪里?
谢谢你的建议。
答案 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()
以确保它没有被摧毁/清理过。