在特定情况下,WebBrowser
控件无法触发NavigationComplete
或NavigationFailed
事件处理程序。
以下是应该发生的事情:
WebBrowser
并为其提供加载身份验证网页的网址。WebBrowser
控件加载网址并呈现网页。WebBrowser
控制遵循重定向。NavigationComplete
事件处理程序附加到控件。当它找到指示重定向成功的url模式时,它会执行另一个方法。实际发生的事情:
用户在步骤3中提交凭据后,WebBrowser
会呈现空白页,但不会触发任何事件处理程序。代码正在侦听WebBrowser
控件提供的每个导航事件处理程序。
我尝试了什么:
WebBrowser
可以正常使用O_o onTap
添加了WebBrowser
个事件,用于检查当前网址/导航到另一个网页,以查看在空白网页错误后控件是否以某种方式损坏。 WebBrowser
正确回应。WebView
控件。 WebView
工作得很好。有什么建议吗?有没有人经历过这样的控制呢?有没有人知道可以解决这个问题的库(商业或开源)。 Android bridge for Windows或iOS bridge for Windows是否支持Windows Phone 8?
答案 0 :(得分:1)
戴夫,
WebBrowser控件旨在直接在UI线程中工作,并且通过上面所说的,您可能在非UI线程中运行它,这种情况应该是......期望的意外行为。
如果是这种情况,您可能会尝试将线程转换为单线程单元(STA)线程,因为apatment模型对于COM组件(例如ActiveX组件,WebBrowser类所属的)和你可以这样做:
yourThread.SetApartmentState(ApartmentState.STA);
有关STA线程的更多信息,请参阅this page。
由于WebBrowser控件是一个AciveX组件,因此this page的内容也具有相关性,并指出相同的问题。
希望它有所帮助。 ;)