Пример #1
0
        /// <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&params=" + _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);
        }
Пример #2
0
        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);
        }