つまらない質問のタイトルで申し訳ありません。問題を 1 文で説明するのは難しいです。問題は次のとおりです。
アプリの使用を開始する前に、ユーザーがライセンス契約に同意したことを確認する必要があります。私の考えは、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 はここでは適用できませんか? または、何か回避策はありますか?
ありがとう。