1

我使用自定义 URI 在 Windows Phone 8 上打开我的应用程序。当设备接收到带有我的自定义协议的 URI 时,自定义 UriMapper 会提取参数并返回格式为 的 URI /MainPage.xaml?param1=test。这将打开主页,该主页又使用参数来执行某些操作。

问题:如果使用自定义 URI 打开应用程序,自定义 URI 将保留在后台堆栈中。如果我然后打开一个子页面并使用后退按钮导航回来,则主页会加载参数,这会导致应用程序再次处理参数。处理完参数后,我想用无参数版本替换后台堆栈中的 URI。

4

1 回答 1

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

    }
}

高温高压

于 2013-08-22T09:29:28.793 回答