在特定情况下,WebBrowser
控件无法触发NavigationComplete
或NavigationFailed
事件处理程序。WebBrowser控件无法触发事件处理程序
这里会发生什么:
- 原生的Windows Phone 8.1的Silverlight应用程序实例化一个
WebBrowser
,并提供其URL来加载认证网页。 WebBrowser
控件加载url并呈现页面。- 用户输入凭证并点击提交按钮以将信息发布到验证服务。
- 验证服务验证凭据并用302(重定向)进行响应。
WebBrowser
控制遵循重定向。- A
NavigationComplete
事件处理程序附加到控件。当它找到一个表示重定向成功的url模式时,它会执行一个附加的方法。 - 附加方法从重定向url查询参数中抽取openid标记。
- 用户已通过身份验证并且很高兴。
实际发生的:用户在步骤#提交他们的凭据
后3 WebBrowser
呈现一个空白页面,并不会触发任何事件处理程序。该代码正在监听由WebBrowser
控件提供的每个导航事件处理程序。
我已经试过什么:
- 与测试Heroku的服务器重建方案尽可能接近,我可以。 WebBrowser通过POST提交按钮进入虚拟凭证输入页面,该按钮再次击中heroku; heroku回应302和真正的重定向网址。
WebBrowser
工作正常O_o - 添加
onTap
事件到WebBrowser
检查当前的URL /导航到另一个页面,以查看控制是否在空白页错误后以某种方式损坏。WebBrowser
正确响应。 - 确保在控件上启用了Javascript。
- 使用与Windows 8平板电脑应用程序完全相同的服务器端基础结构,该应用程序共享90%的相同代码,但使用
WebView
控件。WebView
工作得很好。
有什么建议吗?有没有人经历过这样的控制?有谁知道可以解决这个问题的库(商业或开源)。 Android bridge for Windows或iOS bridge for Windows支持windows phone 8吗?
难以帮助没有完整的repro示例。 –
是的,我自己也有同样的问题。我只能用我们公司专有的Auth软件重现它 – davehenry
正在重定向使用HTTPS的页面?如果有,证书是否有效?导航到托管浏览器控件上具有无效证书的页面时,有时会显示空白页面。 – Don