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<TProduct.Model.WebBrowserResponse> 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<TProduct.Model.WebBrowserResponse> 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<TProduct.Model.WebBrowserResponse> 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);
|
}
|
}
|
}
|