Xamarin.FormsにAzure Active Directory B2Cを実装しようとしています。私がそれらの例をコピーすれば、問題なく動作させることができます。しかし、私がプリズムを使用しようとすると、私は問題にぶつかります。ページが最初にロードされるときにViewModelのOnNavigatedToが起動しない
私は、XAMLの分離コードに座っていたこのコードを取った:
protected override async void OnAppearing()
{
base.OnAppearing();
App.PCApplication.PlatformParameters = platformParameters;
try {
var ar = await App.PCApplication.AcquireTokenSilentAsync(
AuthenticationInfo.Scopes, string.Empty, AuthenticationInfo.Authority,
AuthenticationInfo.SignUpSignInpolicy, false);
AuthenticationInfo.UserAuthentication = ar;
} catch {
}
}
async void OnSignUpSignIn(object sender, EventArgs e)
{
try {
var ar = await App.PCApplication.AcquireTokenAsync(
AuthenticationInfo.Scopes, string.Empty, UiOptions.SelectAccount,
string.Empty, null, AuthenticationInfo.Authority,
AuthenticationInfo.SignUpSignInpolicy);
AuthenticationInfo.UserAuthentication = ar;
} catch (Exception ex) {
if (ex != null) {
}
}
}
をとのViewModelのOnNavigatedToにそれを移動:
public async void OnNavigatedTo (NavigationParameters parameters)
{
if (parameters.ContainsKey ("title"))
Title = (string)parameters ["title"];
listen2asmr.App.PCApplication.PlatformParameters = platformParameters;
try {
var ar = await listen2asmr.App.PCApplication.AcquireTokenSilentAsync(
AuthenticationInfo.Scopes, string.Empty, AuthenticationInfo.Authority,
AuthenticationInfo.SignUpSignInpolicy, false);
AuthenticationInfo.UserAuthentication = ar;
} catch {
}
}
これはブートストラップである:
protected override Xamarin.Forms.Page CreateMainPage()
{
return Container.Resolve<LoginPage>();
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<LoginPage>();
}
OnNavigated Toは決して呼び出されないようです。私が使用しなければならない他の方法がいくつかありますか?私が考えることができる唯一の他のものは、ViewModelコンストラクタからOnNavigatedToのコードを呼び出すことでしたが、async/awaitはコンストラクタで動作します。
来る私は現在、非常に似た何かをしようとしています。あなたの提案されたソリューションは機能しましたか?ロジックをビュー・モデルにどのようにコピーするのかを理解する上での問題として、これを言います。 – whiskeycoder