【问题标题】:Awesomium Web Browser - How WebCore.Shutdown & WebCore.Initialize AgainAwesomium Web Browser - WebCore.Shutdown & WebCore.Initialize 如何再次
【发布时间】:2017-03-06 07:03:21
【问题描述】:

我在我的 winform 应用程序中使用 Awesomium 作为 Web 浏览器控件。
在按钮的单击事件中,我想关闭并重新初始化 WebCore
我该如何做这份工作?
我写了这些代码,但出现以下错误:

代码:

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);

这是错误:

“System.InvalidOperationException”类型的异常发生在 Awesomium.Core.dll 但未在用户代码中处理

附加信息:您正在尝试重新初始化 网络核心。 WebCore 每个进程只能初始化一次,并且 只有在进程退出时才必须关闭。

【问题讨论】:

  • 错误信息似乎很清楚

标签: c# winforms webbrowser-control awesomium .net-4.6.1


【解决方案1】:

目前 Chromium 不支持在调用 Shutdown() 方法后“重新初始化”。因此,基于它的库(Awesomium、CEF 等)也不支持此类功能。

根据您需要此功能的原因,您可以尝试其他方法(例如清除缓存、cookie)。

【讨论】:

  • 哪个库比 Awesomium 更好?
  • 这真的取决于你的需要。 Awesomium 很棒,但它不是免费用于商业开发的。有时使用标准的 WebBrowser 组件会更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
  • 2021-08-24
  • 2020-12-19
  • 2020-12-11
相关资源
最近更新 更多