2017-03-06 47 views
0

我使用Awesomium作爲我的winform應用程序中的Web瀏覽器控件。
在一個按鈕的點擊事件中,我想關閉&重新初始化WebCore
我該怎麼做這份工作?
我寫了這些代碼,但我得到了以下錯誤:Awesomium Web瀏覽器 - 如何WebCore.Shutdown和WebCore.Initialize再次

代碼:

webBrowser_main.Dispose(); <------> I want to remove this previous awesomium control & recreate it again with same ID 
WebCore.Shutdown(); 

await dl(5000, 7000); 

WebConfig config = new WebConfig() { UserAgent = "blablabla", LogLevel = LogLevel.None }; 
WebCore.Initialize(config); <------> I HAVE ERROR HERE 
WebCore.Initialized += WebCoreInitialzed; 
WebCore.Download += WebCoreDownload; 

WebControl browser = new WebControl(); 
browser.Name = "webBrowser_main"; 
browser.BackColor = System.Drawing.Color.GreenYellow; 
browser.Location = new System.Drawing.Point(12, 29); 
browser.Size = new System.Drawing.Size(960, 565); 
browser.TabIndex = 52; 
browser.ViewType = Awesomium.Core.WebViewType.Offscreen; 
browser.ShowJavascriptDialog += new Awesomium.Core.JavascriptDialogEventHandler(webBrowser_main_ShowJavascriptDialog); 
browser.TargetURLChanged += new Awesomium.Core.UrlEventHandler(webBrowser_main_TargetURLChanged); 
browser.ShowCreatedWebView += new Awesomium.Core.ShowCreatedWebViewEventHandler(webBrowser_main_ShowCreatedWebView); 
browser.DocumentReady += new Awesomium.Core.DocumentReadyEventHandler(webBrowser_main_DocumentReady); 
browser.LoadingFrame += new Awesomium.Core.LoadingFrameEventHandler(webBrowser_main_LoadingFrame); 
browser.LoadingFrameComplete += new Awesomium.Core.FrameEventHandler(webBrowser_main_LoadingFrameComplete); 
browser.MouseMove += new System.Windows.Forms.MouseEventHandler(webBrowser_main_MouseMove); 
browser.Source = new System.Uri("https://www.google.com", System.UriKind.Absolute); 
browser.TabIndex = 0; 
this.Controls.Add(browser); 

這裏是錯誤:

類型的異常「系統。 InvalidOperationException'發生在 Awesomium.Core.dll中,但未在用戶代碼中處理

附加信息:您正試圖重新初始化 WebCore。 WebCore只能在每個進程中初始化一次,並且只有在進程退出時才必須關閉 。

+0

錯誤消息似乎很清楚 – Evk

回答

0

目前Chromium在調用Shutdown()方法後不支持「重新初始化」。所以,基於它的庫(Awesomium,CEF等)也不支持這樣的功能。

根據您爲什麼需要此功能,您可以嘗試其他方法(例如清除緩存,Cookie)。

+0

哪個庫比Awesomium更好? – MoonLight

+0

這確實取決於你的需求。 Awesomium很棒,但它對於商業發展來說並不是免費的。 有時使用標準WebBrowser組件更容易。 – MonarchL