/// <summary> /// rpc指令,创建一个窗口,从指定的url,url可以是本地文件,也可以是http服务器 /// </summary> /// <param name="option"></param> /// <param name="_url"></param> /// <returns></returns> public async Task <int> window_create(WindowCreateOption option, string _url, int parentwindow = -1) { Newtonsoft.Json.Linq.JArray _params = new JArray(); JObject objwin = option.ToJson(); _params.Add(objwin); _params.Add(_url); var url = "http://localhost:" + this.httpport_electron + "/?method=window.create¶ms=" + _params.ToString().Replace("\r\n", ""); var wc = new System.Net.WebClient(); var str = await wc.DownloadStringTaskAsync(url); var jsonrecv = JObject.Parse(str); var id = (int)jsonrecv["winid"]; return(id); }
public static async Task <WindowRemote> Create(WebWindow.WindowMgr mgr, WindowCreateOption op) { if (!mgr.hadInit) { throw new Exception("windowmgr has not inited."); } var url = mgr.urlWin; var windowid = await mgr.window_create(op, url); var win = new WindowRemote(mgr, windowid); RecordWin(win); while (!win.hasInit) { await Task.Delay(100); } return(win); }