public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options) { var uri = new NSUrlComponents(url, true); var token = uri.PercentEncodedQueryItems.FirstOrDefault(x => x.Name == "token")?.Value; var refreshToken = uri.PercentEncodedQueryItems.FirstOrDefault(x => x.Name == "refresh_token")?.Value; if (!string.IsNullOrWhiteSpace(token)) { Xamarin.Forms.Application.Current.Properties["token"] = token; Xamarin.Forms.Application.Current.Properties["refresh_token"] = refreshToken; Xamarin.Forms.Application.Current.MainPage = new MasterPage(); } else { var model = new Core.Models.User.ExternalLoginConfirmModel(); model.Email = uri.PercentEncodedQueryItems.FirstOrDefault(x => x.Name == "email").Value; model.FirstName = uri.PercentEncodedQueryItems.FirstOrDefault(x => x.Name == "gname").Value; model.LastName = uri.PercentEncodedQueryItems.FirstOrDefault(x => x.Name == "sname").Value; model.Cookie = uri.PercentEncodedQueryItems.FirstOrDefault(x => x.Name == "externalToken").Value; model.Provider = uri.PercentEncodedQueryItems.FirstOrDefault(x => x.Name == "provider").Value; Xamarin.Forms.Application.Current.MainPage.Navigation.PushAsync(new ExtrenalLoginConfirmPage(model)); } return(true); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); Forms.Init(this, bundle); var intent = Intent; if (Intent.ActionView.Equals(intent.Action)) { var uri = intent.Data; string token = uri.GetQueryParameter("token"); string refreshToken = uri.GetQueryParameter("refresh_token"); if (!string.IsNullOrWhiteSpace(token)) { LoadApplication(new App(token, refreshToken)); } else { var model = new Core.Models.User.ExternalLoginConfirmModel(); model.Email = uri.GetQueryParameter("email"); model.FirstName = uri.GetQueryParameter("gname"); model.LastName = uri.GetQueryParameter("sname"); model.Cookie = uri.GetQueryParameter("externalToken"); model.Provider = uri.GetQueryParameter("provider"); LoadApplication(new App()); Xamarin.Forms.Application.Current.MainPage.Navigation.PushAsync(new ExtrenalLoginConfirmPage(model)); } } else { LoadApplication(new App()); } }