Windows Phone 8 SDK - 发布屏幕锁定和应用程序开始

问题描述:

我有一个Webbrowser控件在其中的应用程序。当我在那个控件中导航,然后离开一会儿,然后回到它(由于不活动而解锁屏幕后),第一个/原始页面再次出现。我该如何维护浏览器的状态?Windows Phone 8 SDK - 发布屏幕锁定和应用程序开始

+0

您描述的场景通常被称为“墓碑式”。您可能能够通过使用此关键字找到一些文档。我不确定处理问题的最佳方法是什么,但我想它涉及在应用程序停用时保存当前的浏览器的URI,并在应用程序激活时恢复它。这还不足以完全恢复浏览器的状态(例如,用户在表单中键入的内容将会丢失),但我不知道是否有更好的方法。 – 2013-05-13 08:42:52

定义一个公共属性地址在App.xaml.cs存储一个地址

public Uri Url { get; set; } 

在WebBrowser_LoadCompleted事件:保存包含当前加载的地址到上述应用程序类的地址属性WebBrowser.Source属性。

App app = Application.Current as App; 
app.Url = WebBrowser.Source; 

在Application_Deactivated事件(发送应用背景),当前应用程序的状态保存到IsolatedStorage

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
settings["Url"] = Url; 
settings.Save(); 

在Application_Launching事件(恢复应用程序),拉存储的数据回

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
Url currentUrl; 
if (settings.TryGetValue("Url", out currentUrl)) 
    Url = (Uri)settings["Url"]; 

然后从恢复的Url中,您可以重新加载最后一个导航页面。

App app = Application.Current as App; 
WebBrowser.Navigate(app.Url); 

你可以试试这个:

bool isNew = true; 

protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 
     isNew = false; 
} 

此属性将保持,直到你的页面被关闭,所以你可以用它来测试,如果这是第一次你的页面导航到。