Initialization
<!--浏览器--><cefSharpWPF:ChromiumWebBrowser Name="webBrowser" Grid.Row="0" ></cefSharpWPF:ChromiumWebBrowser>
public MainWindow(){ InitializeComponent(); //在js里面注册对象bound,然后用该对象调用C#方法 webBrowser.RegisterAsyncJsObject("bound", new BoundObject(this), BindingOptions.DefaultBinder); //Use the default binder to serialize values into complex objects}
BoundObject.cs
public class BoundObject{ private Window mainWindow { get; set; } public BoundObject(Window _mainWindow) { mainWindow = _mainWindow; } /// <summary> /// 打开exe文件 /// </summary> public void OpenFile() { try { //MessageBox.Show("(\"This is an MyMethod coming from C#\")", "haha"); string path ="你要打开的文件目录"; System.Diagnostics.Process.Start(path); } catch(Exception ex) { MessageBox.Show("请输入正确的文件路径!", "提示"); } }}
JS Call
bound.openFile();
Bound is defined in C # so that the OpenFile method of the Boundobject class is called
Cefsharp for WPF response page click events