如何只从UIActivityViewController获取动作按钮分享Facebook

use*_*457 1 share facebook popup ios uiactivityviewcontroller

我有一个案例如下:

  • 在应用程序中,我创建一个UIButton,当点击将显示像UIActivityViewController的弹出共享Facebook.但我不知道从UIActivityViewController得到popup share facebook.我需要每个人的帮助.

非常感谢 !!!

小智 6

您需要创建一个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];
}
Run Code Online (Sandbox Code Playgroud)

如果您希望排除任何活动类型,可以添加以下内容:

// add an array of activity types to exclude
activityViewController.excludedActivityTypes = @[UIActivityTypeMail, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo];
Run Code Online (Sandbox Code Playgroud)

在呈现activityViewController之前.

此外,要查看"在Facebook上分享"选项,您需要在设备上登录Facebook,如此答案中所述.

///

选项2 - 没有UIActivityController

如果您不想使用活动控制器,而只是直接打开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];
}
Run Code Online (Sandbox Code Playgroud)