私がやろうとしていること:
私が開発している UWP アプリの場合、アプリの機能にアクセスするには、ユーザーが Google/FB 資格情報でログインする必要があります。これを行うために、OAuth 認証に Auth0 クライアントを使用しています。ログインに成功すると、ユーザーは MainPage.xaml に移動する必要があります。アプリをデバッグするとき、これはまったく問題なく完全に機能します。
XAML:
<Button Margin="0,45,0,0" Grid.Row="6" HorizontalAlignment="Center" Name="GoogleSignIn" Content="Sign in with Google+" Tag="google-oauth2" Click="OAuthSignin" />
<Button Margin="0,15,0,0" Grid.Row="7" HorizontalAlignment="Center" Name="FacebookSignIn" Content="Sign in with Facebook" Tag="facebook" Click="OAuthSignin" />
分離コード:
private async void OAuthSignin(object sender, RoutedEventArgs e)
{
string oauthprovider = ((Button)sender).Tag.ToString();
try
{
Auth0User user = await App.auth0.LoginAsync(oauthprovider);
if (user != null)
{
//Add user to credential locker
}
}
catch(Exception ex)
{
ex.ToString();
}
finally
{
var nav = Template10.Common.BootStrapper.Current.NavigationService;
nav.Navigate(typeof(Views.MainPage));
nav.ClearHistory();
}
}
何が問題なのですか:
アプリがエミュレーターにデプロイされるので、デバッグを停止し、タイルをタップしてアプリを起動します。ログイン ページが表示されたら、資格情報を入力します。Enter キーを押すとすぐに、ログイン ページに戻り、すぐにクラッシュします。この時点でアプリを再度開くと、既にログインしていることがわかり、MainPage.xaml に直接移動します (アプリのロジックと同様)。
気になる点:デバッグ モードでない場合に動作が異なるのはなぜですか? クラッシュの原因を特定するためのブレークポイントを設定できないため、これは私にとって不利です。
任意の入力をいただければ幸いです。
PS: アプリを Lumia 640 に展開しようとしましたが、電話でも同じ問題が発生します (つまり、エミュレーターに関連していないということです)。デスクトップ バージョンは正常に動作します (デバッグ以外でも)。