public Form1() { _blinkBrowser = new BlinkBrowser() { Dock = DockStyle.Fill }; InitializeComponent(); this.Load += Form1_Load; }
public static object ToValue(this long value, BlinkBrowser miniblink, IntPtr es) { if (value == 0) { return(null); } wkeJSType type = BlinkBrowserPInvoke.jsTypeOf(value); switch (type) { case wkeJSType.JSTYPE_NULL: case wkeJSType.JSTYPE_UNDEFINED: return(null); case wkeJSType.JSTYPE_NUMBER: return(BlinkBrowserPInvoke.jsToDouble(es, value)); case wkeJSType.JSTYPE_BOOLEAN: return(BlinkBrowserPInvoke.jsToBoolean(es, value)); case wkeJSType.JSTYPE_STRING: //string strvalue = string.Empty; //strvalue = BlinkBrowserPInvoke.jsToTempStringW(es, value).ToStringW(); return(BlinkBrowserPInvoke.jsToTempStringW(es, value).ToStringW()); case wkeJSType.JSTYPE_FUNCTION: return(new JsFunc(new JsFuncWapper(miniblink, value, es).Call)); case wkeJSType.JSTYPE_ARRAY: var len = BlinkBrowserPInvoke.jsGetLength(es, value); var array = new object[len]; for (var i = 0; i < array.Length; i++) { array[i] = BlinkBrowserPInvoke.jsGetAt(es, value, i).ToValue(miniblink, es); } return(array); case wkeJSType.JSTYPE_OBJECT: var ptr = BlinkBrowserPInvoke.jsGetKeys(es, value); var jskeys = (jsKeys)Marshal.PtrToStructure(ptr, typeof(jsKeys)); var keys = Utils.PtrToStringArray(jskeys.keys, jskeys.length); var exp = new ExpandoObject(); var map = (IDictionary <string, object>)exp; foreach (var k in keys) { map.Add(k, BlinkBrowserPInvoke.jsGet(es, value, k).ToValue(miniblink, es)); } return(map); default: throw new NotSupportedException(); } }
internal object OnFunc(BlinkBrowser miniblink, object[] param) { return(_func(new NetFuncContext { Name = Name, Miniblink = miniblink, State = _state, Paramters = param ?? new object[0] })); }
public MainForm() { InitializeComponent(); this.WindowState = FormWindowState.Maximized; blinkBrowser1 = new BlinkBrowser(); blinkBrowser1.Dock = DockStyle.Fill; this.Controls.Add(this.blinkBrowser1); blinkBrowser1.GlobalObjectJs = this; this.blinkBrowser1.OnDownloadFile += BlinkBrowser1_OnDownloadFile; this.Load += Form1_Load; this.FormClosed += Form1_FormClosed; }
private void TabForm_Load(object sender, EventArgs e) { this.Show(); List <ComboBoxVo> lists = GetTuijian(); this.ComboBoxTuijian.DataSource = lists; this.ComboBoxTuijian.DisplayMember = "keyName"; this.ComboBoxTuijian.ValueMember = "keyValue"; tabControl1.MouseClick -= TabControl_MouseClick; tabControl1.MouseClick += TabControl_MouseClick; BlinkBrowser browser = CreateNewTab(); browser.Url = textBox1.Text; }
private BlinkBrowser CreateNewTab() { var tabPage = new System.Windows.Forms.TabPage() { Text = "" }; BlinkBrowser browser = new BlinkBrowser(); tabPage.Controls.Add(browser); browser.OnCreateViewEvent += Browser_OnCreateViewEvent; browser.OnUrlChangeCall += Browser_OnUrlChangeCall; browser.DocumentReadyCallback += Browser_DocumentReadyCallback; browser.OnDownloadFile += Browser_OnDownloadFile; browser.OnTitleChangeCall += (title) => { tabPage.Invoke((EventHandler) delegate { tabPage.Text = title; }); }; browser.OnUrlChange2Call += (nowUrl) => { tabPage.Invoke((EventHandler) delegate { if (BrowserTab.SelectedTab == tabPage) { Url = nowUrl; /*textBox1.Invoke((EventHandler)delegate * { * textBox1.Text = nowUrl; * });*/ } }); }; browser.Dock = System.Windows.Forms.DockStyle.Fill; BrowserTab.TabPages.Add(tabPage); BrowserTab.SelectTab(tabPage); return(browser); }
/// <summary> /// 初始化插件 /// </summary> /// <param name="mainWindow"></param> public void Initialize(Grid plugsGrid) { this.plugsGrid = plugsGrid; Grid grid = Content as Grid; DependencyObject parent = grid.Parent; if (parent != null) { parent.SetValue(ContentPresenter.ContentProperty, null); } plugsGrid.Children.Add(grid); Browser = CreateNewTab(); BrowserGrid.Visibility = Visibility.Visible; FileListGrid.Visibility = Visibility.Hidden; FileDataListGrid.DataContext = fileDataLists; // 初始化全局组件后启动浏览器 InitializeChromium(); }
public Form1() { InitializeComponent(); blinkBrowser1.GlobalObjectJs = this; mb = blinkBrowser1; }
private void TabForm_Load(object sender, EventArgs e) { BlinkBrowser browser = CreateNewTab(); browser.Url = textBox1.Text; }
public frmMain() { InitializeComponent(); mb = blinkBrowser1; blinkBrowser1.GlobalObjectJs = new MBApiHelper(blinkBrowser1); }
internal JsFuncWapper(BlinkBrowser control, long jsvalue, IntPtr es) { _miniblink = control; _name = "func" + Guid.NewGuid().ToString().Replace("-", ""); BlinkBrowserPInvoke.jsSetGlobal(es, _name, jsvalue); }
public static long ToJsValue(this object obj, BlinkBrowser miniblink, IntPtr es) { if (obj == null) { return(BlinkBrowserPInvoke.jsUndefined()); } if (obj is int) { return(BlinkBrowserPInvoke.jsInt((int)obj)); } if (obj is bool) { return(BlinkBrowserPInvoke.jsBoolean((bool)obj)); } if (obj is double) { return(BlinkBrowserPInvoke.jsDouble((double)obj)); } if (obj is decimal) { var dec = (decimal)obj; if (dec.ToString().Contains(".")) { return(ToJsValue(Convert.ToDouble(dec.ToString()), miniblink, es)); } else { return(ToJsValue(Convert.ToInt32(dec.ToString()), miniblink, es)); } } if (obj is long) { return(ToJsValue(obj.ToString(), miniblink, es)); } if (obj is float) { return(BlinkBrowserPInvoke.jsFloat((float)obj)); } if (obj is DateTime) { return(BlinkBrowserPInvoke.jsDouble(((DateTime)obj).ToLong())); } if (obj is string) { return(BlinkBrowserPInvoke.jsString(es, obj.ToString())); } if (obj is IEnumerable) { var list = new List <object>(); foreach (var item in (IEnumerable)obj) { list.Add(item); } var array = BlinkBrowserPInvoke.jsEmptyArray(es); BlinkBrowserPInvoke.jsSetLength(es, array, list.Count); for (var i = 0; i < list.Count; i++) { BlinkBrowserPInvoke.jsSetAt(es, array, i, list[i].ToJsValue(miniblink, es)); } return(array); } if (obj is Delegate) { var func = (Delegate)obj; var funcptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(jsData))); var jsfunc = new jsCallAsFunctionCallback( (fes, fobj, fargs, fcount) => { if (func is TempNetFunc) { var fps = new List <object>(); for (var i = 0; i < fcount; i++) { fps.Add(BlinkBrowserPInvoke.jsArg(fes, i).ToValue(miniblink, fes)); } return(((TempNetFunc)func)(fps.ToArray()).ToJsValue(miniblink, fes)); } else { var fps = new object[func.Method.GetParameters().Length]; for (var i = 0; i < fcount && i < fps.Length; i++) { fps[i] = BlinkBrowserPInvoke.jsArg(fes, i).ToValue(miniblink, fes); } var rs = func.Method.Invoke(func.Target, fps); return(rs.ToJsValue(miniblink, fes)); } }); var funcdata = new jsData { typeName = "function", callAsFunction = jsfunc, finalize = FunctionFinalize }; _keepref.Add(funcptr.ToInt64(), funcdata); Marshal.StructureToPtr(funcdata, funcptr, false); return(BlinkBrowserPInvoke.jsFunction(es, funcptr)); } var jsobj = BlinkBrowserPInvoke.jsEmptyObject(es); var ps = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var p in ps) { var v = p.GetValue(obj, null); if (v == null) { continue; } BlinkBrowserPInvoke.jsSet(es, jsobj, p.Name, v.ToJsValue(miniblink, es)); } return(jsobj); }
public MBApiHelper(BlinkBrowser mb) : base() { //MB = mb; BH = new BookHelper(); }