Windows Phone 8 SDK - 发布屏幕锁定和应用程序开始
问题描述:
我有一个Webbrowser控件在其中的应用程序。当我在那个控件中导航,然后离开一会儿,然后回到它(由于不活动而解锁屏幕后),第一个/原始页面再次出现。我该如何维护浏览器的状态?Windows Phone 8 SDK - 发布屏幕锁定和应用程序开始
答
定义一个公共属性地址在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;
}
此属性将保持,直到你的页面被关闭,所以你可以用它来测试,如果这是第一次你的页面导航到。
您描述的场景通常被称为“墓碑式”。您可能能够通过使用此关键字找到一些文档。我不确定处理问题的最佳方法是什么,但我想它涉及在应用程序停用时保存当前的浏览器的URI,并在应用程序激活时恢复它。这还不足以完全恢复浏览器的状态(例如,用户在表单中键入的内容将会丢失),但我不知道是否有更好的方法。 – 2013-05-13 08:42:52