【发布时间】:2017-07-04 16:32:41
【问题描述】:
我正在编写一个 Windows 应用程序,它使用 wxWebView (Trident) 来显示从绑定到临时端口上的本地主机接口的内部服务器提供的页面。我遇到了一个问题,如果主机没有启用任何活动的外部 IP 接口(例如处于飞行模式的笔记本电脑),wxWebView 实例拒绝加载页面并发送带有字符串的页面加载失败事件“INET_E_DOWNLOAD_FAILURE”。发生这种情况时,我可以让外部浏览器(包括 Internet Explorer)从我的 Web 服务器加载页面,这样我就知道环回接口正在工作。有什么方法可以配置 wxWebView 实例以使其加载页面?
当我在 webview 示例应用程序中尝试此操作时,我可以在日志窗口中看到以下内容:
13:33:33: Navigation request to 'res://ieframe.dll/navcancl.htm#http://www.wxwidgets.org/' (target='')
13:33:33: Title changed; title='http://www.wxwidgets.org/'
13:33:33: Navigation complete; url='http://www.wxwidgets.org/'
13:33:33: Title changed; title='Navigation Canceled'
13:33:33: Document loaded; url='http://www.wxwidgets.org/'
13:34:12: Navigation request to 'http://localhost:57588/stations.html' (target='')
13:34:12: Error; url='http://localhost:57588/stations.html', error='wxWEBVIEW_NAV_ERR_CONNECTION (INET_E_DOWNLOAD_FAILURE)'
【问题讨论】:
-
你能重现它的 webview 示例吗?另外,您使用的是什么版本的库?什么编译器?你在什么操作系统上测试它?
-
@Igor 我在 Visual Studio 2015 中使用 wxWidgets 3.1.0。我在示例中看到了相同的行为。我正在 Windows 10 上进行测试。
-
当错误发生时你有没有尝试过
EVT_WEBVIEW_ERROR事件重定向到你的网络服务器。 -
@macroland 我正在处理错误事件。这就是我知道错误类型的方式。不幸的是,没有什么可以重定向的。应用程序中的所有服务都是本地的。尽管如此,网络视图甚至拒绝尝试加载页面。
-
@JonTrauntvein,你试过调试它吗?失败的功能是否来自 WinAPI?
标签: windows visual-c++ wxwidgets iwebbrowser2