2013-08-22 34 views
1

我使用自定義URI在Windows Phone 8上打開我的應用程序。當設備通過自定義協議接收到URI時,自定義UriMapper將提取參數並返回URI形式/MainPage.xaml?param1=test。這將打開主頁面,然後使用參數來執行某些操作。通過自定義URI打開應用程序後更改主頁面的URI

問題:如果應用程序正在使用自定義URI打開,則自定義URI保留在後備堆棧中。如果我然後打開一個子頁面並使用後退按鈕返回主頁面,則會加載參數,這會導致應用程序再次處理參數。一旦參數已被處理,我想用無參數版本替換後備堆棧中的URI。

+0

如果你可以指定編程語言你正在用這些參數做些什麼,我們可能會更好地回答你的問題。如果它是javascript,你可以在處理完參數後使用'window.location.replace(「main-page-url-without-parameters」)''。 – rmhartog

+0

你是對的。我正在使用C#。 – Paul

回答

2

如果你找到一個參數,你可以再次刪除當前頁面(來自紙摞導航),並瀏覽到同一頁是這樣的:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    if (this.NavigationContext.QueryString.ContainsKey("param1")) 
    { 
     string param = this.NavigationContext.QueryString["param1"]; //Get "Param" this QueryString. 

     // .. Do Stuff 

     NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
     NavigationService.RemoveBackEntry(); 

    } 
} 

HTH

+0

完美,正是我所期待的。 – Paul

相關問題