WebBrowser控件必须在每次重新访问应用程序页面时重新加载内容(Windows Phone 7, Silverli

本文关键字:加载 新加载 Windows Silverli Phone 新访问 控件 应用程序 WebBrowser 访问 | 更新日期: 2023-09-27 18:07:50

我正在为Windows Phone 7/Silverlight编写一个应用程序。当应用程序要么是墓碑和重新激活,而在包含WebBrowser控件的应用程序页面(我已经保存在应用程序状态的Uri) ,相同的应用程序页面导航到NavigationService.GoBack()或电话返回按钮,似乎只要控制仍然有web浏览器。源值,它应该渲染得很好,但事实并非如此。除非我使用Navigate()方法,否则无论我做什么尝试,它都会显示一个白色/空白的屏幕。不幸的是,使用Navigate()方法会导致不必要地再次下载web内容。当只使用GoBack()来返回带有WebBrowser控件的应用程序页面时,这尤其令人沮丧,这在我的应用程序中是相当频繁的。

    private void OnWebBrowserLoaded(object sender, RoutedEventArgs e)
    {
        //webBrowser1.Source = CurrentUri; //does not work, results in white/blank browser page
        webBrowser1.Navigate(CurrentUri); //works, but page has to reload from web, bad UX
    }
有什么建议可以解决这个问题吗?我也试过把同样的代码在页面加载的处理程序。

我也试过保存的HTML (SaveToString)和重新加载它从应用程序状态(NavigateToString),但网页不完全渲染的某种原因,即使HTML看起来很好。此外,我还想访问Host和Uri属性。我可能可以绕过那个,如果我能让HTML从NavigateToString中渲染OK。谢谢,Jay

WebBrowser控件必须在每次重新访问应用程序页面时重新加载内容(Windows Phone 7, Silverli

你应该使用browsertask:

using Microsoft.Phone.Tasks;
 WebBrowserTask browse = new WebBrowserTask();
            browse.Uri = new Uri(URL, UriKind.RelativeOrAbsolute);
                //new Uri(URL,UriKind.RelativeOrAbsolute);
            browse.Show();

这应该能解决你的问题。

URL为您要访问的页面的URL。