使用它你可以很轻松将miniblink引入你的任何C#项目
所有的P/Invoke代码位于NativeMethods内部
所有的事件位于 Miniblink/Event目录下
已封装好常用功能以及WebSocket接口,详细使用方法请看Raindrops.UI.WebView.TestWinForm
using Raindrops.UI.WebView.Miniblink;
using Raindrops.UI.WebView.Miniblink.Event;
using Raindrops.UI.WebView.Miniblink.PInvoke;
using Raindrops.UI.WebView.Miniblink.PInvoke.Handle;
public class LoadUrlBeginEventArgs : EventArgs
{
[Map(Name = "url")]
public string Url { get; set; }
[Map(Name = "job")]
public mbNetJob Job { get; set; }
[Map(IsRet = true)]
public bool Result { get; set; }
}
public partial class Browser : UserControl, IMiniblinkProxy
{
public EventAdapter<LoadUrlBeginEventArgs, mbLoadUrlBeginCallback> LoadUrlBegin;
public Browser()
{
LoadUrlBegin = new EventAdapter<LoadUrlBeginEventArgs, mbLoadUrlBeginCallback>(this, NativeMethods.mbOnLoadUrlBegin);
LoadUrlBegin.EventHandler += LoadUrlBegin_EventHandler;
}
private void LoadUrlBegin_EventHandler(object sender, Miniblink.Event.LoadUrlBeginEventArgs eventArgs)
{
if (eventArgs.Url.Contains("aaaaaa")) eventArgs.Job.ChangeRequestUrl("www.baidu.com");
var postBody = eventArgs.Job.GetPostBody();
if (postBody.elementSize.ToUInt32() > 0)
{
foreach (var body in postBody.GetElements())
{
var buffer = body.GetData().ToArray();
string value = Encoding.UTF8.GetString(buffer);
AppendLog($"Post {eventArgs.Url} -> StringLength:{value.Length}");
}
}
}
}
QQ:744257911 So Easy