How to dismiss FBWebDialogs

前端 未结 2 2047
醉酒成梦
醉酒成梦 2021-01-24 14:56

How can I dismiss an FBWebDialogs programmatically - I have seen through all the documentation and stack overflow questions, and there seems to be no way to do this? That can\'t

相关标签:
2条回答
  • 2021-01-24 14:59

    So I found a kind of hacky way to do it, this code will programmatically trigger the close button TouchUpInside thus closing the dialog as if someone had manually pressed the close button - it works by looping through the last window in the app's view hiearachy and then trying to locate the FBDialog's closebutton - it works in my test, but might not work for everyone, here's the code, but really facebook should add an API call to do it in their SDK.

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
    
    UIView *fbDialogWrapper = [window.subviews lastObject];
    NSLog(@"Class: %@", [[fbDialogWrapper.subviews firstObject] class]);
    if ([[fbDialogWrapper.subviews firstObject] isKindOfClass:NSClassFromString(@"FBDialog")]) {
        for (UIView *view in ((UIView *)[fbDialogWrapper.subviews firstObject]).subviews) {
            if ([view isKindOfClass:[UIButton class]]) {
                UIButton *closeButton = (UIButton *)view;
                [closeButton sendActionsForControlEvents:UIControlEventTouchUpInside];
                NSLog(@"Trigger facebook close");
                break;
            }
        }
    }
    
    0 讨论(0)
  • 2021-01-24 15:03

    Just use [self dismissModalViewControllerAnimated:YES]; it worked well for me!

    0 讨论(0)
提交回复
热议问题