async void ProcessRequest(string url) { if (url.Contains(NotSensitive.SystemUrls.pinterest_redirect_url)) { if (url.Contains(NotSensitive.SystemUrls.instagram_redirect_url + "/?code") || url.Contains("&code")) { var separatedByAmpersand = url.Split('&'); foreach (string sub in separatedByAmpersand) { if (sub.Contains("code")) { var seperatedByEquals = sub.Split('='); var token = seperatedByEquals.Last(); if (!String.IsNullOrEmpty(token)) { ShowHud(Strings.Hud.please_wait); var result = await PinterestAuthenticator.GetPinterestAccount(token); if (result != null) { var activity = Activity as BaseActivity; activity?.PopFragmentOverUntil(typeof(MyOutletsRecyclerViewFragment)); } HideHud(); } } } } } }
public override void ViewDidLoad() { base.ViewDidLoad(); RemoveBackBarButtonTitle(); //clear cache WebUtils.ClearCache(); //clear cookies WebUtils.ClearCookies(); string AuthorizeUrl = "https://api.pinterest.com/oauth/?"; AuthorizeUrl += "response_type=code&"; AuthorizeUrl += "client_id=" + NotSensitive.SlinkKeys.pinterest_client_id + "&"; AuthorizeUrl += "state=" + "SLINKNILS" + "&"; AuthorizeUrl += "scope=" + "read_public" + "&"; AuthorizeUrl += "redirect_uri=" + NotSensitive.SystemUrls.pinterest_redirect_url; Console.WriteLine(AuthorizeUrl); var webViewDelegate = new PinterestWebViewDelegate(); webViewDelegate.TokenReceived += async(token) => { ShowHud(Strings.Hud.please_wait); var result = await PinterestAuthenticator.GetPinterestAccount(token); if (result != null) { var popToViewController = NavigationController.ViewControllers.Where(c => c.GetType() == typeof(MyOutletsViewController)).First(); NavigationController.PopToViewController(popToViewController, true); } HideHud(); }; var request = new NSMutableUrlRequest(NSUrl.FromString(AuthorizeUrl), NSUrlRequestCachePolicy.ReloadIgnoringLocalCacheData, 10); request.ShouldHandleCookies = false; var offsetY = NavigationController.NavigationBar.Bounds.Height; WebView = new UIWebView(new CGRect(0, offsetY, View.Bounds.Width, View.Bounds.Height - offsetY)); WebView.Delegate = webViewDelegate; WebView.LoadRequest(request); View.AddSubview(WebView); View.AddConstraint(NSLayoutConstraint.Create(WebView, NSLayoutAttribute.Top, NSLayoutRelation.Equal, View, NSLayoutAttribute.Top, 1, offsetY)); View.AddConstraint(NSLayoutConstraint.Create(WebView, NSLayoutAttribute.Right, NSLayoutRelation.Equal, View, NSLayoutAttribute.Right, 1, 0)); View.AddConstraint(NSLayoutConstraint.Create(WebView, NSLayoutAttribute.Bottom, NSLayoutRelation.Equal, View, NSLayoutAttribute.Bottom, 1, 0)); View.AddConstraint(NSLayoutConstraint.Create(WebView, NSLayoutAttribute.Left, NSLayoutRelation.Equal, View, NSLayoutAttribute.Left, 1, 0)); }