对不起,蹩脚的问题标题,很难用一句话来描述这个问题。问题如下:
我需要确保用户在开始使用该应用程序之前已接受许可协议。我的想法是使用 UriMapper,它会检查用户之前是否接受过协议,如果没有,将他或她重定向到许可协议页面。
public override Uri MapUri(Uri uri)
{
if(!settingsStorage.IsLicenseAgreementAccepted)
return LicenseAgreementPage;
return uri;
}
但是,在许可协议页面上,如果我重写 OnNavigatedTo,我会看到导航 URI 不是当前页面的 URI,而是未映射的 URI,例如我的主页的地址。因此,当我尝试导航到该主页时,什么也没有发生,因为导航服务认为我已经在那里。
public partial class LicenseAgreementPage : PhoneApplicationPage
{
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e); // somehow e.Uri equals to /MainPage.xaml, instead of /LicenseAgreementPage.xaml
}
}
那么如何克服呢?UriMapper 在这里不适用吗?还是有一些解决方法?
谢谢。