質問

まず、私がデザインの面で最善の方法についてさえ行われているのであればよくわかりませんが、私はAndroidとXamarin.Formsにとって非常に新しいことに少し新しいです。私のセットアップは、Xamarin.Forms.Forms PCLの一連のContentPagesです。このサービスは、ログインすると、さらなる操作を実行するために、アプリケーションが保持するWorkTokenを付与します。私はこれをISessionManagerに保存しています。

私の問題はワークフローの問題です。セッションが終了/障害がある場合は、ユーザーにプレゼントしたいというLoginPageがあります。基本的に彼らがログインして何でもしようとしていない場合は、このページをスタックにプッシュして、ログインを試みるように強制し、有効な資格情報を提供しようとしている場合は、それらが中断した場所を続けてください。これはすべてPCLで行われていますが、ISessionManagerのオーバーライドされたContentPageメソッドで照会されるOnAppearingのAndroid実装を作成しました。各ページはISessionManagerCheckLoginを呼び出します。 Intentは、PCLのPCLのLoginActivityを包み込むだけです。

っての問題は、このようにして、LoginActivityはそれを呼び出されたページの上に非同期的に実行されます。この呼び出しページはまだRESTサービスを通じて正しく初期化されていないため、壊れた状態にあります。私は2つの可能な解決策があると想像しています。 LoginPageを同期的に実行するか、私のデザインを再考します。 LoginActivityセットアップ:

var intent = new Intent(_context, typeof(LoginActivity));
intent.AddFlags(ActivityFlags.NewTask);
_context.StartActivity(intent);
.

これについての関連記事のためにいくつかのXamarinフォーラムをチェックしましたが、xamarin.formsでは基本的なナビゲーションワークフローを超えて見つかりませんでした。

編集:ここでやろうとしていることに似たものを見つけました。新しいインテントからAndroid でそれを作成したクラスに変数を渡す方法Xamarin.Forms。 Intentは、Intentに存在していた場合、問題を解決しますが、同等のものはありません。

役に立ちましたか?

解決

なぜあなたはログイン活動を作成しているのですか?それはあなたがAndroidから原生を使用する必要があるためですか?

私の最初の考え続けて、ログインページのモーダルをプッシュするかどうか、ユーザーログインが行われた後に、ログインページのモーダルを押したり、トークンが保存された後にPOPを押すことができます。モーダルで、それはユーザーが以前のページを表示します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top