ios - 如何从 UIActivityViewController 仅获取操作按钮共享 facebook

标签 ios facebook popup share uiactivityviewcontroller

我有一个案例如下:

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

  • 太感谢了 !!!

    最佳答案

    您需要创建一个 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];
    }
    

    关于ios - 如何从 UIActivityViewController 仅获取操作按钮共享 facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198264/

    相关文章:

    ios - 如何使用 Swift 删除 Firebase 上超过 30 分钟的数据?

    ios - 视频层上的CALayer位置动画

    android - Ionic/Cordova Web App - 启动时出现 index.html 错误

    jquery 移动弹出窗口不起作用?

    iphone - 安装 IPA 导致错误 "A signed resource has been added, modified, or deleted"

    ios - 搜索栏和搜索栏 Controller 只需点击它就会崩溃

    javascript - 使用 JavaScript SDK 发布到 Facebook 页面时出现授权问题

    facebook - 不同于类似于 edge.create 的事件

    c# - 使用 Facebook C# SDK 检查 Facebook 登录状态并获取 session 详细信息

    javascript - 在Chrome扩展中,是否可以捕获屏幕并将屏幕显示在弹出窗口上?