2013-05-13 54 views
0

我有一個Webbrowser控件在其中的應用程序。當我在那個控件中導航,然後離開一會兒,然後回到它(由於不活動而解鎖屏幕後),第一個/原始頁面再次出現。我該如何維護瀏覽器的狀態?Windows Phone 8 SDK - 發佈屏幕鎖定和應用程序開始

+0

您描述的場景通常被稱爲「墓碑式」。您可能能夠通過使用此關鍵字找到一些文檔。我不確定處理問題的最佳方法是什麼,但我想它涉及在應用程序停用時保存當前的瀏覽器的URI,並在應用程序激活時恢復它。這還不足以完全恢復瀏覽器的狀態(例如,用戶在表單中鍵入的內容將會丟失),但我不知道是否有更好的方法。 – 2013-05-13 08:42:52

回答

2

定義一個公共屬性地址在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); 
1

你可以試試這個:

bool isNew = true; 

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

此屬性將保持,直到你的頁面被關閉,所以你可以用它來測試,如果這是第一次你的頁面導航到。

相關問題