編集:クラッシュを実証サンプル・プロジェクトは、ここで見つけることができます:https://github.com/rringham/brokenazurexamforms - あなたがあなた自身のAzureアプリケーションサービスのURLを設定する必要があります。Azure MobileServiceClient LoginAsync()の後にNavigation.PushAsyncがクラッシュするのはなぜですか?
- のsrc/BrokenAzureForms /ドロイド/サービス/ユーザー/ DroidUserService .csファイル
- のsrc/BrokenAzureForms/iOS版/サービス/ユーザー/ IosUserService.cs
私はAzureのMobileServiceClient
で認証後にそれを使用しようとするとき、私はAndroid上でXamarinフォームのNavigation.PushAsync()
クラッシュを見ています。このクラッシュはAndroidに分離されています.iOSでは発生しません。ここで
がセットアップだ - 私は私のメインのアプリページなどの基本的なNavigationPage
を持っている:
LoginPage
オン MainPage = new NavigationPage(new LoginPage());
を、私は私のAndroidのプロジェクトで認証を実行するDependencyService
-injectedクラスを使用して認証しますIUserService
の私のAndroidの実装では
private async void OnMicrosoftAccountTapped(object sender, EventArgs args)
{
IUserService userService = DependencyService.Get<IUserService>();
bool authenticated = await userService.LoginWithAzureAD();
if (authenticated)
{
await Navigation.PushAsync(new HomePage(), false);
}
}
、私は(かなりの正確アズール/ Xamarinはフォームどのようなチュートリアルが表示され)、この操作を行います。
public async Task<bool> LoginWithAzureAD()
{
try
{
_user = await _client.LoginAsync(Xamarin.Forms.Forms.Context, MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory);
}
catch (Exception)
{
return false;
}
return true;
}
ここでは、物事が崩れる場所があります。 LoginWithAzureAD()
が完了すると、制御はOnMicrosoftAccountTapped()
に戻ります。もしので、私は考えることができるすべては、AzureのMobileServiceClient
が内部Xamarin.Forms.Forms.Context
とかなりファンキーな何かをやっているということです
:アプリがクラッシュする、非常に小さなディテールを持つに行くために - 私たちは、その後Navigation.PushAsync()
を呼び出すために行く、とブームは、 await userService.LoginWithAzureAD()
へのコールを削除すると、Navigation.PushAsync()
への呼び出しは問題なく動作します。 MobileServiceClientの何かが壊れているか、Xamarin Formsで何かが壊れています。
誰でもこのようなものを見ますか?
こんにちは@Rob Ringham、あなたはこれがでソートを取得するために管理しました終わり?これはちょうど私が現時点で直面している問題であり、あなたが持っていたのと同じ呼び出しにそれを釘付けにしました。ありがとう。 –