0

私はWindows Phoneの開発にまったく慣れていません。実際に、アプリケーションにナビゲーション フローを実装しようとしています。

この単純なフローを実現したい:

  1. アプリの起動時に、ユーザーが既にログインしているかどうかを確認します
  2. 次に、MainPage などに移動します。
  3. それ以外の場合は、ログイン ページに移動します
  4. ユーザーはログインページに進み、ログインが成功するとメインページに移動します

私はすでに次のような解決策を試しています:

App.xaml.cs で

UriMapper mapper = Resources["uriMapper"] as UriMapper;
RootFrame.UriMapper = mapper;

Uri loginPage = new Uri("/LoginPage.xaml", UriKind.Relative);
Uri mainPage = new Uri("/MainPage.xaml", UriKind.Relative);

if (!ClientApi.IsAuthenticated)
{
    mapper.UriMappings[0].MappedUri = loginPage;
}
else
{
    mapper.UriMappings[0].MappedUri = mainPage;
}

動作しますが、ログイン後にアプリケーションの他のページに移動できません

MainPage で OnNavigatedTo(NavigationEventArgs e) をオーバーライドします

if (!App.ClientApi.IsAuthenticated)
{                
    NavigationService.Navigate(new Uri("/LoginPage.xaml", UriKind.Relative));
}

しかし、戻るボタンを押すと、アプリはログインページに戻らず、ログインページで動かなくなります.

私は何を間違っていますか?

PS:

私は使用しています

4

1 に答える 1

0

UriMapperのMapUriメソッドを上書きする必要があります。

ドキュメントには次のように記載されています。

アプリが起動されると、初期化中に URI マッパーが割り当てられます。ページを起動する前に、アプリは URI マッパーの MapUri メソッドを呼び出して、起動するページを決定します。URI マッパーが返す URI は、アプリが起動するページです。

または、次の提案されたソリューションのいずれかを使用します。

それで

MSDN ブログ

最後のものが最も適しているようです。

于 2013-08-20T07:57:16.577 に答える