public static Task <LoginCompletedArgs> LoginFacebookAsync(this WebBrowser browser, Uri uri, string fbAppId, string extendedPermissions) { CurrentState = FacebookSDKState.Login; loginTaskCompletionSource = new TaskCompletionSource <LoginCompletedArgs>(); onLoginCompleted = null; onLoginCompleted = (object sender, NavigationEventArgs e) => { LoginCompletedArgs result; LoginNavigationCallBack(e, fbAppId, extendedPermissions, out result); if (result != null) { browser.Navigated -= onLoginCompleted; loginTaskCompletionSource.SetResult(result); } }; onLoginFailed = null; onLoginFailed = (object sender, NavigationFailedEventArgs e) => { browser.NavigationFailed -= onLoginFailed; loginTaskCompletionSource.SetResult(new LoginCompletedArgs(false)); }; browser.Navigated += onLoginCompleted; browser.NavigationFailed += onLoginFailed; browser.Navigate(uri); return(loginTaskCompletionSource.Task); }
public static Task <FeedCompletedArgs> FeedFacebookAsync(this WebBrowser browser, Uri uri) { CurrentState = FacebookSDKState.FeedDialog; feedTaskCompletionSource = new TaskCompletionSource <FeedCompletedArgs>(); onFeedCompleted = null; onFeedCompleted = (object sender, NavigationEventArgs e) => { FeedCompletedArgs result; FeedNavigationCallBack(e, out result); if (result != null) { browser.Navigated -= onFeedCompleted; feedTaskCompletionSource.SetResult(result); } }; onFeedFailed = null; onFeedFailed = (object sender, NavigationFailedEventArgs e) => { browser.NavigationFailed -= onFeedFailed; feedTaskCompletionSource.SetResult(new FeedCompletedArgs(false)); }; browser.Navigated += onFeedCompleted; browser.NavigationFailed += onFeedFailed; browser.Navigate(uri); return(feedTaskCompletionSource.Task); }
public static Task <AppRequestsCompletedArgs> AppRequestFacebookAsync(this WebBrowser browser, Uri uri) { CurrentState = FacebookSDKState.AppRequestDialog; appRequestTaskCompletionSource = new TaskCompletionSource <AppRequestsCompletedArgs>(); onRequestCompleted = null; onRequestCompleted = (object sender, NavigationEventArgs e) => { AppRequestsCompletedArgs result; RequestNavigationCallBack(e, out result); if (result != null) { browser.Navigated -= onRequestCompleted; appRequestTaskCompletionSource.SetResult(result); } }; onRequestFailed = null; onRequestFailed = (object sender, NavigationFailedEventArgs e) => { browser.NavigationFailed -= onRequestFailed; appRequestTaskCompletionSource.SetResult(new AppRequestsCompletedArgs(false)); }; browser.Navigated += onRequestCompleted; browser.NavigationFailed += onRequestFailed; browser.Navigate(uri); return(appRequestTaskCompletionSource.Task); }