using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using Lskj.MiniBlink;
//using static Lskj.MiniBlink.BlinkBrowserPInvoke;
namespace Lskj.MiniBlink
{
public class BlinkBrowser : System.Windows.Forms.Control, IMessageFilter
{
//Timer timer = new Timer();
string CookiePath { get; set; }
public IntPtr handle = IntPtr.Zero;
string url = string.Empty;
IntPtr bits = IntPtr.Zero;
static IntPtr jsHandle = IntPtr.Zero;
Size oldSize;
public object GlobalObjectJs = null;
public delegate void TitleChange(string title);
public event TitleChange OnTitleChangeCall;
UrlChangedCallback urlChangedCallback;
public delegate void URLChange(string url);
public event URLChange OnUrlChangeCall;
UrlChangedCallback2 urlChangedCallback2;
public delegate void URLChange2(string url);
public event URLChange2 OnUrlChange2Call;
public delegate void OnUrlNavigation(string url);
public event OnUrlNavigation OnUrlNavigationCall;
public delegate void DocumentReady();
public event DocumentReady DocumentReadyCallback;
public delegate IntPtr OnCreateViewCallback(IntPtr webView, IntPtr param, wkeNavigationType navigationType, string url);
public event OnCreateViewCallback OnCreateViewEvent;
//URL end 回调通知
public delegate void OnUrlEnd(byte[] bytes, string url, int len);
public event OnUrlEnd OnUrlEndEvent;
//下载事件回调通知
public delegate void OnDownload(string url);
public event OnDownload OnDownloadFile;
wkeOnShowDevtoolsCallback _wkeOnShowDevtoolsCallback;
public void ShowDevtools(string path)
{
BlinkBrowserPInvoke.wkeShowDevtools(this.handle, path, _wkeOnShowDevtoolsCallback, IntPtr.Zero);
}
///
/// 页面是否加载失败
///
public bool IsLoadingFailed
{
get
{
if (handle != IntPtr.Zero)
{
return BlinkBrowserPInvoke.wkeIsLoadingFailed(handle);
}
return false;
}
}
///
/// 页面是否加载成功
///
public bool IsLoadingSucceeded
{
get
{
if (handle != IntPtr.Zero)
{
return BlinkBrowserPInvoke.wkeIsLoadingSucceeded(handle);
}
return false;
}
}
public bool IsLoadingCompleted
{
get
{
if (handle != IntPtr.Zero)
{
return BlinkBrowserPInvoke.wkeIsLoadingCompleted(handle);
}
return false;
}
}
List