在应用程序由自定义URI打开后更改主页的URI
本文关键字:URI 主页 应用程序 自定义 | 更新日期: 2023-09-27 18:28:31
我使用自定义URI在Windows Phone 8上打开我的应用程序。当设备接收到带有我的自定义协议的URI时,自定义UriMapper提取参数并返回形式为/MainPage.xaml?param1=test
的URI。这将打开主页面,主页面依次使用参数执行某些操作。
问题是:如果使用自定义URI打开应用程序,则该自定义URI将保留在后堆栈中。如果我打开一个子页面并用后退按钮导航回来,主页面就会加载参数,这会导致应用程序再次处理参数。我想在处理完参数后,用无参数版本替换后堆栈中的URI。
如果您找到一个参数,您可以删除当前页面(使用堆栈中的导航),然后再次导航到相同的页面,如下所示:
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