xamarin.formsによるセッション管理(Android)
-
21-12-2019 - |
質問
まず、私がデザインの面で最善の方法についてさえ行われているのであればよくわかりませんが、私はAndroidとXamarin.Formsにとって非常に新しいことに少し新しいです。私のセットアップは、Xamarin.Forms.Forms PCLの一連のContentPage
sです。このサービスは、ログインすると、さらなる操作を実行するために、アプリケーションが保持するWorkToken
を付与します。私はこれをISessionManager
に保存しています。
私の問題はワークフローの問題です。セッションが終了/障害がある場合は、ユーザーにプレゼントしたいというLoginPage
があります。基本的に彼らがログインして何でもしようとしていない場合は、このページをスタックにプッシュして、ログインを試みるように強制し、有効な資格情報を提供しようとしている場合は、それらが中断した場所を続けてください。これはすべてPCLで行われていますが、ISessionManager
のオーバーライドされたContentPage
メソッドで照会されるOnAppearing
のAndroid実装を作成しました。各ページはISessionManager
のCheckLogin
を呼び出します。 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では基本的なナビゲーションワークフローを超えて見つかりませんでした。
編集:ここでやろうとしていることに似たものを見つけました。Intent
は、Intent
に存在していた場合、問題を解決しますが、同等のものはありません。
解決
なぜあなたはログイン活動を作成しているのですか?それはあなたがAndroidから原生を使用する必要があるためですか?
私の最初の考え続けて、ログインページのモーダルをプッシュするかどうか、ユーザーログインが行われた後に、ログインページのモーダルを押したり、トークンが保存された後にPOPを押すことができます。モーダルで、それはユーザーが以前のページを表示します。