Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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());
            }
        }