WinRT WebView不会更新基于HTML5 pushState的当前URL?

时间:2014-10-08 11:38:02

标签: c# webview windows-runtime windows-8.1 windows-phone-8.1

Windows 8.1和Windows Phone 8.1中的WinRT WebView控件不会更新其Source属性以响应history.pushStatehistory.replaceState,这可以修改当前的URL来自JavaScript而不实际导航到不同的页面。

您可以通过创建新的空白应用,将名为 WebView WebView控件添加到 MainPage.xaml 并使用以下内容替换构造函数来轻松验证:

public MainPage()
{
    this.InitializeComponent();

    var timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(1) };
    timer.Tick += (o, e) => Debug.WriteLine("WebView.Source: " + WebView.Source);
    timer.Start();

    // you could also replace the URL with a simpler demo page like this one:
    // http://www.skjapp.com/wp-content/uploads/2012/06/HistoryAPI-pushState.htm
    WebView.Navigate(new Uri("http://try.discourse.org"));
}

在Discourse上打开任何讨论主题都不会更新WebView.Source。本机IE浏览器正确处理这个问题,并且旧的Windows Phone Silverlight WebBrowser控件也很奇怪。

那么,我做错了什么或者是否有其他方法可以获得正确支持HTML5历史记录API的WebView的当前网址?

0 个答案:

没有答案