iOS开发之ios自带的最基础的社会化分享功能

ios自带的社会化分享功能其实不咋滴,要分享到微博或者微信之类的不如用他们自己官网sdk,不过因为今天无聊研究了下ios自带的分享功能,反正既然学了,那就写出来吧。

1.社会化分享之列表项:ios自带的社会化分享功能,如果你希望点出来的先是一个列表,然后再列表中选择其中的某一项,就要用UIActivityViewController类。

首先要知道ios自带的社会化分享有哪些功能,一共有以下几个类型

 UIActivityTypePostToFacebook  -- facebook活动列表项
 UIActivityTypePostToTwitter  -- twitter活动列表项
 UIActivityTypePostToWeibo  -- 新浪微博活动列表项
 UIActivityTypeMessage -- iMessage应用活动列表项
 UIActivityTypeMail -- 发送mail活动列表项
 UIActivityTypePrint -- 共享打印活动列表项
 UIActivityTypeCopyToPasteboard -- 将内容复制到剪切板
 UIActivityTypeAssignToContact -- 访问联系人活动列表项
 UIActivityTypeSaveToCameraRoll -- 访问设备上的相册活动列表项

废话不多说,使用列表项无需加入包什么的,直接编写即可,接下来直接把代码贴出来

- (IBAction)shareList:(id)sender
{
    //定义文字、图片,以及可点击时点击触发的url。然后将这3者加入到数组中去
    NSString *textToShare = @"大家好我叫王伟楷";
    UIImage *imageToShare = [UIImage imageNamed:@"wwk.png"];
    NSURL *urlToShare = [NSURL URLWithString:@"http://www.wangweikai.com"];
    NSArray *activityItems = @[textToShare,imageToShare,urlToShare];
    //创建UIActivityViewController对象,并将数值放进去
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
    //定义不出现在活动的项目
    activityVC.excludedActivityTypes = @[UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact,UIActivityTypeSaveToCameraRoll];
    //这里是为了适配ios以及以上版本新增的,只有iOS以及以上版本才有那个方法,有那个方法的话则执行
    if ( [activityVC respondsToSelector:@selector(popoverPresentationController)] ) {
        
        activityVC.popoverPresentationController.sourceView = self.view;
        
    }
    //执行
    [self presentViewController:activityVC animated:true completion:nil];
}

2.第2种的话,是直接弹出要分享的窗口,确认信息无误后点确定即可分享 ,使用到的类是SLComposeViewController

使用该类要注意的前期准备是

(1)先添加Social.framework框架,具体添加框架的方法这里就不详细说了,相信大家都懂的

(2)在文件头部引入#import

好,之后即可进行编程了,直接贴上代码

- (IBAction)share:(id)sender
{
    //创建SLComposeViewController对象,并定义为SLServiceTypeSinaWeibo,即是要实现新浪微博的分享
    SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
   //这里可以添加“if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo])”判断你的苹果设备是否有绑定微博账号
    //以下方法用来查看用户点击的是哪个按钮,以及点击按钮后该执行的方法
        SLComposeViewControllerCompletionHandler __block completionHandle = ^(SLComposeViewControllerResult result)
        {
            [composeViewController dismissViewControllerAnimated:YES completion:nil];
            
            switch (result)
            {
                //如果点击的是取消的按钮
                case SLComposeViewControllerResultCancelled:
                default:
                    NSLog(@"cancelled...");
                    break;
                //如果点击的是确定的按钮
                case SLComposeViewControllerResultDone:
                    NSLog(@"posted...");
                    break;
            }
        };
        //定义图片和文字
        [composeViewController addImage:[UIImage imageNamed:@"wwk.png"]];
        [composeViewController setInitialText:@"大家好我叫王伟楷"];
        //将上面的block加进来
        [composeViewController setCompletionHandler:completionHandle];
        //模态视图呈现,如果是ipad则要popover视图呈现
        [self presentViewController:composeViewController animated:YES completion:nil];
}

你可能感兴趣的:(ios开发,ios开发,新浪微博,社会化分享)