首页 > 代码库 > 社交网络编程(2)---SLComposeViewController

社交网络编程(2)---SLComposeViewController

如分享信息时不想弹出分享列表,而是在APP中直接选择分享信息到哪一个应用(比如直接分享到新浪微博),SLComposeViewController类可以帮助我们实现这个目的。iOS 系统为SLComposeViewController类提供所管理的UI界面:

SLComposeViewController所管理的视图可以撰写社交网络信息、发送这些信息以及取消发送,还有把自己的位置信息也添加到社交信息中发送。

主要步骤:
    1)判断服务器是否可以访问
        使用方法isAvailableForServiceType:
    2)使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
        其中
        SLServiceTypeFacebook 就是 Facebook
        SLServiceTypeTwitter 就是 Twitter
        SLServiceTypeWeibo 就是微博
 
    3)写一个bolck,用于completionHandler的初始化
    4)给view controller初始化默认的图片,url,文字信息
    5)以模态的方式展现view controller
01    // 发送新浪微博
02    - (IBAction)WeiboAction:(id)sender
03    {   
04        // 首先判断服务器是否可以访问
05        if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
06            NSLog(@\\"Available\\");
07             
08            // 使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
09            SLComposeViewController *socialVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
10    
11            // 写一个bolck,用于completionHandler的初始化
12            SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result) {
13                if (result == SLComposeViewControllerResultCancelled) {
14                    NSLog(@\\"cancelled\\");
15                } else
16                {
17                    NSLog(@\\"done\\");
18                }
19                [socialVC dismissViewControllerAnimated:YES completion:Nil];
20            };
21            // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
22            socialVC.completionHandler = myBlock;
23    
24            // 给view controller初始化默认的图片,url,文字信息
25            UIImage *image = [UIImage imageNamed:postImage.text];
26            NSURL *url = [NSURL URLWithString:postUrl.text];
27             
28            [socialVC setInitialText:postText.text];
29            [socialVC addImage:image];
30            [socialVC addURL:url];
31    
32            // 以模态的方式展现view controller
33            [self presentViewController:socialVC animated:YES completion:Nil];
34    
35        } else {
36            NSLog(@\\"UnAvailable\\");
37        }
38    }