【问题标题】:IOS7 - SLComposeViewController - Include links / Images?IOS7 - SLComposeViewController - 包括链接/图像?
【发布时间】:2013-11-27 15:14:49
【问题描述】:

我正在代表客户构建一个 IOS7 Native 应用程序 - 用于健身教练。

简要要求客户可以在社交媒体上分享进度更新 - 其中包括一个指向讲师网站的链接以帮助提升,例如 - 'Joe ran 3000 miles with the help of Debbie Personal Trainer',最好是一张培训师的小照片。

我查看了SLComposeViewController 并可以轻松创建推文字符串,但我不知道如何向其中添加 URL 和图像 - 有人知道这是否可能吗?

【问题讨论】:

    标签: ios facebook twitter slcomposeviewcontroller


    【解决方案1】:

    导入框架<Twitter/Twitter.h><Social/Social.h>

    -(void)sendFacebook:(id)sender {
    
        SLComposeViewController *composeController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    
        [composeController setInitialText:@"look me"];
        [composeController addImage:[UIImage imageNamed:@"image.png"]];
        [composeController addURL: [NSURL URLWithString:@"http://www.apple.com"]];
    
        [self presentViewController:composeController animated:YES completion:nil];
    
        SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
            if (result == SLComposeViewControllerResultCancelled) {
                NSLog(@"delete");
            } else  {
                NSLog(@"post");
            }
    
        //    [composeController dismissViewControllerAnimated:YES completion:Nil];
          };
            composeController.completionHandler =myBlock;
    }
    
    - (void)sendTwitter:(id)sender {
    
        SLComposeViewController *composeController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
    
        [composeController setInitialText:@"look me"];
        [composeController addImage:[UIImage imageNamed:@"image.png"]];
        [composeController addURL: [NSURL URLWithString:
                                    @"http://www.apple.com"]];
    
        [self presentViewController:composeController
                           animated:YES completion:nil];
    
        SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
            if (result == SLComposeViewControllerResultCancelled) { 
                NSLog(@"delete"); 
            } else {
                NSLog(@"post");
            }
         //   [composeController dismissViewControllerAnimated:YES completion:Nil];
          };
            composeController.completionHandler =myBlock;
    }
    

    【讨论】:

    • 一流的欢呼! - 唯一的小问题是我得到一个“不可见的 SLComposeViewControllerCompletionHandler 的@interface 声明选择器dismissviewcontroller:animated
    • @Dancer 对不起,我很困惑。我编辑了我的答案,看看前几行,我将导入更改为做
    • @Dancer 我现在正在查看,正是您注意到的错误..现在编辑了回复..谢谢,不客气!
    • 谢谢,这让我不必做大量的实验!
    • 由于文档中的 iOS7 特定说明,此答案应删除“dismissViewControllerAnimated”行:“在 iOS 7 及更高版本中,当使用 iOS 7 或更高版本的 SDK 编译时,您不得在完成时关闭 SLComposeViewController处理程序——系统将自动执行此操作。”
    【解决方案2】:

    这与 llario 的答案几乎相同,但遵循 Apple 文档说明并采用防御性编码和一些额外的错误检查。

    #import <Social/Social.h>
    
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
        SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
        if (composeViewController) {
            [composeViewController addImage:[UIImage imageNamed:@"MyImage"]];
            [composeViewController addURL:[NSURL URLWithString:@"http://www.google.com"]];
            NSString *initialTextString = @"Check out this Tweet!";
            [composeViewController setInitialText:initialTextString];
            [composeViewController setCompletionHandler:^(SLComposeViewControllerResult result) {
                if (result == SLComposeViewControllerResultDone) {
                    NSLog(@"Posted");
                } else if (result == SLComposeViewControllerResultCancelled) {
                    NSLog(@"Post Cancelled");
                } else {
                    NSLog(@"Post Failed");
                }
            }];
            [self presentViewController:composeViewController animated:YES completion:nil];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-06
      • 2013-08-07
      • 1970-01-01
      • 2018-01-16
      • 2015-08-21
      • 2020-11-09
      • 2016-01-16
      • 2019-07-04
      相关资源
      最近更新 更多