MvvmCross-Formsアプリケーションのログインページを実装しようとしています。アプリケーションが起動されると、ログインしていなければログイン画面が表示され、ログインしていない場合はホームページに表示されます。ユーザはログインするとホームページに誘導され、ホームページからログアウトするとログインページに誘導されます。かなり標準的なもの - あなたは認証付きのアプリケーションから何を期待していますか?Xamarin MvvmCross-Formsを使用したログインページ - Androidのバックナビゲーションを防止する
これはMvvmCross ViewModelナビゲーションを使用して実装しましたが、すべてのナビゲーションでAndroidのタイトルバーにある[戻る]ボタンを押すか、ハードウェアの戻るボタンを使用できます。ユーザーとしては、ログイン後にホームページを 'ルート'ページにして、明示的にログアウトすることでログイン画面に戻ることができます。
Xamarinフォームでこれを行う典型的な方法は、Show()
への呼び出しをインターセプトし、ホームページまたはログインページへのナビゲーションでバックスタックをクリアする、Droidプロジェクトの下にカスタムPage Presenterを作成することです例えば、Xamarin MvvmCross Android Prevent Back Button returning to previous Viewの最上位の回答)。しかし、MvvmCross-Formsは意図的にあなたがこの機能を実装できないようです。MvxFormsDroidPagePresenter
クラスは、アンドロイド特有のMvxAndroidViewPresenter
ではなく、クロスプラットフォームMvxFormsPagePresenter
から継承しています。
私は、ログイン用に1つのViewModel/Viewとホームページを使用するか、MvxAndroidViewPresenter
機能の一部を切り取り、自分のカスタムAndroidプレゼンターに入れるかの2つのオプションがあります。この動作はMvvmCross-Formsでどのように慣用的に実装されますか?
https://github.com/conceptdev/xamarin-forms-samples/tree/master/LoginDemoを試すことができます – Vishnu