后端:
ps:前端调用(后端的方法首字母不能大写)驼峰命名
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp.WinForms;
using CefSharp;
using System.Security.Permissions;
using System.Runtime.InteropServices;
namespace Winform_Web_Interaction
{
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Main : Form
{
public Main()
{
InitializeComponent();
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
InitBrowser();
}
ChromiumWebBrowser browser;
public void InitBrowser() {
browser = new ChromiumWebBrowser("http://localhost:59506/");
this.Controls.Add(browser);
browser.FrameLoadEnd += OpenDev;
browser.RegisterJsObject("bound", new _Event());
}
public void OpenDev(object sender, EventArgs e) {
browser.ShowDevTools();
}
private void Main_Load(object sender, EventArgs e)
{
}
}
public class _Event
{
public string getName()
{
return "hello Man";
}
}
}
前端:
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script src="/Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(function () {
$("#run").click(function () {
var a = bound.getName();
alert(a);
});
});
</script>
</head>
<body>
<div>
<input value="跳JS" type="button" id="run" />
</div>
</body>
</html>
补充:引用CEF的时候会有问题
必须将<CefSharpAnyCpuSupport> true </ CefSharpAnyCpuSupport>添加到项目中的第一个<PropertyGroup>配置节
增加 <probing privatePath="x86"/> 去你的 app.config 配置文件。
<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><probing privatePath="x86"/></assemblyBinding></runtime>