Извините за название хромого вопроса, сложно описать проблему в одном предложении. Проблема заключается в следующем:UriMapper и перезаписан URI-вопрос
Мне нужно убедиться, что пользователь принял лицензионное соглашение, прежде чем он сможет начать использовать приложение. Моя идея - использовать 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 здесь? Или есть какое-то обходное решение?
Спасибо.
Кажется, что это должно быть выполнимо ... странно что вы не получаете правильный URI, может быть, посмотрите на [этой статье MSDN] (http://msdn.microsoft.com/en-us/library /windowsphone/develop/jj206987(v=vs.105).aspx), он описывает аналогичный подход для запуска конкретной страницы приложения wp8 на основе данного URI. – Depechie