2

私はXamarin PCLのFacebookログインを統合しています。私はサンプル「コミックブック」https://github.com/moljac/Xamarin.Auth.Samples.NugetReferencesに続き、私のアプリケーションにログインプロセスを統合しました。しかし、oauthプレゼンターがXamarin PCLプロジェクトから呼び出され、iOSのアプリにFacebookのUIを表示する間、私は以下の例外を受けています。私は、ログインのためにFacebookのUIを呼び出すために私が使用するコードを提供しています。OAuthプレゼンターを使用してUINavigationControllerを提示しようとしました

エラー: 警告:UINavigationControllerを提示しようとしています。Xamarin_Forms_Platform_iOS_PlatformRendererの0x7ffa01275a00:ビューウィンドウ階層ではありません0x7ffa00576b80!

var auth = new OAuth2Authenticator(
       clientId: FacebookClientId, 
       scope: "email", 
       authorizeUrl: new Uri(FacebookAuthorizeUrl), 
       redirectUrl: new Uri(FacebookRedirectUri)); 
       auth.AllowCancel = true; 
       auth.Completed += async (s, es) => 
       { 
        if (es.IsAuthenticated) 
        { 
         var request = new OAuth2Request(
         "GET", 
         new Uri("https://graph.facebook.com/me?fields=email,name,picture,cover,birthday"), 
         null, 
         es.Account); 
         var fbResponse = await request.GetResponseAsync(); 
         if (fbResponse != null) 
         { 
               var fbUser = JsonValue.Parse(fbResponse.GetResponseText()); // Getting the error for System.Json double exception issue as well for OAuth v1.5.0.0 only in iOS. 
          if (fbUser != null) 
          { 
           LoginViewModel loginViewModel = new LoginViewModel(); 
           if (!string.IsNullOrEmpty(fbUser["name"])) 
           { 
            loginViewModel.ProfileName = fbUser["name"]; 
            loginViewModel.UserName = fbUser["name"]; 
           } 

          LoginViewModel.SelfLoginViewModel = loginViewModel; 
          await this.Navigation.PushModalAsync(new MasterHome()); 
         } 
         else 
         { 
          await DisplayAlert("Message", "Check your internet connection!", "OK"); 
         } 
        } 
        else 
        { 
         await DisplayAlert("Message", "Check your internet connection!", "OK"); 
        } 
       } 
      }; 
      auth.Error += (s, ea) => 
      { 
       StringBuilder sb = new StringBuilder(); 
       sb.Append("Error= ").AppendLine($"{ea.Message}"); 
       DisplayAlert("Authentication Error", sb.ToString(),"OK"); 
      }; 

      Xamarin.Auth.Presenters.OAuthLoginPresenter presenter = null; 
      presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter(); 
      presenter.Login(auth); 

このエラーを解決するためのご意見をお聞かせください。

注:同じコードはAndroid用に完全に動作します。私はこの問題をiOSでのみ直面しています。私はXamarinのAuth v1.5.0.0に

おかげで、

ビジェイを使用しています。

+0

アプリケーション内のページをナビゲーションスタックに積み重ねて問題を解決しました。 PushModalAsync()を使ってXamarin Authと一緒にページに移動するようなことが、この問題を引き起こします。これをPushAsync()に置き換え、メインアプリケーションをNavigationPage()にラップすることで、この問題が解決されます。 – Vijay457

答えて

0

Navigation Stackでアプリケーションのページを積み重ねることで解決される問題。

関連する問題