Windows phone 8 Windows Phone 8 SDK-屏幕锁定和应用程序重新启动问题

Windows phone 8 Windows Phone 8 SDK-屏幕锁定和应用程序重新启动问题,windows-phone-8,webbrowser-control,Windows Phone 8,Webbrowser Control,我有一个带有webbrowser控件的应用程序。当我在该控件中导航,然后离开一点,然后返回到它(由于不活动而解锁屏幕后),第一页/原始页再次显示。如何维护浏览器的状态?在App.xaml.cs中定义公共属性Url以存储Url public Uri Url { get; set; } 在WebBrowser_LoadCompleted事件上:将包含当前加载Url的WebBrowser.Source属性保存到应用程序类的Upper Url属性 App app = Application.Curre

我有一个带有webbrowser控件的应用程序。当我在该控件中导航,然后离开一点,然后返回到它(由于不活动而解锁屏幕后),第一页/原始页再次显示。如何维护浏览器的状态?

在App.xaml.cs中定义公共属性Url以存储Url

public Uri Url { get; set; }
在WebBrowser_LoadCompleted事件上:将包含当前加载Url的WebBrowser.Source属性保存到应用程序类的Upper Url属性

App app = Application.Current as App; 
app.Url = WebBrowser.Source;
在应用程序被禁用事件(将应用程序发送到后台)中,将当前应用程序的状态保存到IsolatedStorage

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings["Url"] = Url;
settings.Save();
在应用程序启动事件(恢复应用程序)上,将存储的数据拉回来

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);

在App.xaml.cs中定义公共属性Url以存储Url

public Uri Url { get; set; }
在WebBrowser_LoadCompleted事件上:将包含当前加载Url的WebBrowser.Source属性保存到应用程序类的Upper Url属性

App app = Application.Current as App; 
app.Url = WebBrowser.Source;
在应用程序被禁用事件(将应用程序发送到后台)中,将当前应用程序的状态保存到IsolatedStorage

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings["Url"] = Url;
settings.Save();
在应用程序启动事件(恢复应用程序)上,将存储的数据拉回来

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;
}
此属性将一直保持到您的页面关闭,因此您可以使用它来测试这是否是您的页面第一次被导航到。

您可以尝试以下操作:

bool isNew = true;

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

此属性将一直保持到页面关闭,因此您可以使用它来测试页面是否是第一次导航到该属性。

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