【问题标题】:How to get only action button share facebook from UIActivityViewController如何从 UIActivityViewController 仅获取操作按钮共享 facebook
【发布时间】:2014-11-29 02:36:16
【问题描述】:

我有一个案例如下:

  • 在应用程序中,我创建了一个 UIButton,单击时将显示一个弹出共享 facebook,如 UIActivityViewController。但我不知道从 UIActivityViewController 获取弹出共享 facebook。我需要每个人的帮助。

非常感谢!!!

【问题讨论】:

    标签: ios facebook popup share uiactivityviewcontroller


    【解决方案1】:

    您需要创建一个 UIActivityViewController 并指定要共享的项目:

    - (IBAction)buttonPressed:(id)sender
    {
        NSString *textToShare = @"Put text here";
        UIImage *imageToShare = _img;
        NSArray *itemsToShare = @[textToShare, imageToShare];
    
        UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
        [self presentViewController:activityViewController animated:TRUE completion:nil];
    }
    

    如果您希望排除任何activity types,您可以添加:

    // add an array of activity types to exclude
    activityViewController.excludedActivityTypes = @[UIActivityTypeMail, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo];
    

    在展示 activityViewController 之前。

    另外,要查看“在 Facebook 上分享”选项,您需要在设备上登录 Facebook,如 this answer 所述。

    ///

    选项 2 - 没有 UIActivityController

    如果您不想使用 Activity Controller,而只是直接打开 iOS 社交分享对话框,您可以通过导入 Social 框架然后使用 Social Compose View Controller (SLComposeViewController) 来做到这一点

    // import Social framework
    #import <Social/Social.h>    
    
    // check if there is an account for Facebook
    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])    
    {
    
        SLComposeViewController *fbController=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    
        // set up a completion handler (optional)   
        SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){
    
            [fbController dismissViewControllerAnimated:YES completion:nil];
    
            switch(result){
                case SLComposeViewControllerResultCancelled:
                default:
                    break;
                case SLComposeViewControllerResultDone:
                    break;
        }};
    
        [fbController addImage:imageToPost];
        [fbController setInitialText:textToPost];
        [fbController addURL:urlToPost];
        [fbController setCompletionHandler:completionHandler];
        [self presentViewController:fbController animated:YES completion:nil];
    }
    

    【讨论】:

    • 感谢您的回复。但是,我看一些应用程序,当单击时我看到按钮共享 facebook,仅显示 activityViewController 的弹出式 facebook 共享,而不显示 activityViewController。所以……你有别的办法吗? .. :(
    • 我已经编辑了我的答案,包括使用社交框架的直接分享选项。猜猜我误解了你想要完成的事情。希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    相关资源
    最近更新 更多