using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using CefSharp.WinForms; using CefSharp; namespace TProduct.WinFrmUI { public partial class WebBrowserCtrl : UserControl { public WebBrowserCtrl() { InitializeComponent(); } private ChromiumWebBrowser _chromiumWebBrowser;//浏览器控件 protected TProduct.Model.IWebBrowserEvents _browserEvents;//浏览器事件 protected virtual void InitialWebBrowser(string url) { if (!System.IO.File.Exists(url)) { MessageBox.Show(string.Format("{0} 文件丢失!", url)); return; } WebBrowserManager.Initialize(); this.Controls.Clear(); _chromiumWebBrowser = new TProduct.WinFrmUI.CollapsableChromiumWebBrowser(); _chromiumWebBrowser.Dock = DockStyle.Fill; _chromiumWebBrowser.Margin = new Padding(0); _chromiumWebBrowser.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true; _chromiumWebBrowser.JavascriptObjectRepository.Register("callbackObj", _browserEvents, false, BindingOptions.DefaultBinder); _chromiumWebBrowser.LoadUrl(url); this.Controls.Add(_chromiumWebBrowser); } public async Task EvaluateScriptAsync(string script, TimeSpan? timeout = null) { var task = _chromiumWebBrowser.EvaluateScriptAsync(script, timeout); await task; return new TProduct.Model.WebBrowserResponse() { Message = task.Result.Message, Result = task.Result.Result, Success = task.Result.Success }; } protected async Task EvaluateScriptAsync(TimeSpan? timeout, string methodName, params object[] args) { var task = _chromiumWebBrowser.EvaluateScriptAsync(timeout, methodName, args); await task; return new TProduct.Model.WebBrowserResponse() { Message = task.Result.Message, Result = task.Result.Result, Success = task.Result.Success }; } protected async Task EvaluateScriptAsync(string methodName, params object[] args) { var task = _chromiumWebBrowser.EvaluateScriptAsync(methodName, args); await task; return new TProduct.Model.WebBrowserResponse() { Message = task.Result.Message, Result = task.Result.Result, Success = task.Result.Success }; } protected void ExecuteScriptAsync(string methodName, params object[] args) { _chromiumWebBrowser.ExecuteScriptAsync(methodName, args); } protected void ExecuteScriptAsync(string script) { _chromiumWebBrowser.ExecuteScriptAsync(script); } } }