IOS-系统自带社交分享

参考文章地址IOS系统自带社交分享            苹果的UIActivityViewController

很多APP中都带有社交分享功能,通过用户的分享,让更多地人去了解和使用这个APP,目前社交分享是移动互联网应用程序推广的最重要手段之一,国内较或的分享平台有微信,IOS6后苹果集成的新浪微博,还有IOS7后集成的腾讯微博。 在IOS中,实现社交分享可以自己编写各个平台的分享代码,但代码量较多,也可以利用IOS自带的Social.framework,更可以利用第三方的分享框架,如友盟,ShareSDK等。接下来先介绍一个系统自带的分享功能。 打开设备或模拟器的偏好设置,可以看到如下

应用中用到 UIActivityViewController 。

使用代码:

    UIImageView *share=(UIImageView *)[self.imageViews objectAtIndex:pageNumber];
    NSString *su00=[NSString stringWithFormat:@"Let Us Affirm Together with Affirmations: %@",[[NSUserDefaults standardUserDefaults]objectForKey:@"share*******Text"]];
    NSString *su;
    if (su00.length>88) {
        su = [NSString stringWithFormat:@"%@...",[su00 substringToIndex:88]];
    }else{
        su = [NSString stringWithString:su00];
    }
    NSURL *html = [NSURL URLWithString:@"http://itunes.apple.com/app/id9*******0?mt=8"];
    
    
    NSArray *activityItems = @[su, share.image,html];
    
    NSLog(@"activityItems-----%@",activityItems);
    UIActivityViewController *activityViewController =
    [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    [activityViewController setCompletionHandler:^(NSString *act, BOOL done)
     {
         [self doneclick:self];
         NSLog(@"act type %@",act);
         NSString *ServiceMsg = nil;
         if ( [act isEqualToString:UIActivityTypeMail] )           ServiceMsg = @"Mail sent";
         if ( [act isEqualToString:UIActivityTypePostToTwitter] )  ServiceMsg = @"Post on twitter, ok!";
         if ( [act isEqualToString:UIActivityTypePostToFacebook] ) ServiceMsg = @"Post on facebook, ok!";
         
         if ( done )
         {
             //             UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:ServiceMsg message:@"" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
             //             [Alert show];
             NSLog(@"ok ");
         }
         else
         {
             // didn't succeed.
             NSLog(@"no ok");
         }
     }];
当点击屏幕的时候可以看到如下

点击post即可将内容分享出去。当然该分享方式具有一定的局限性,所以一般我们都会使用第三方框架。 这个自带的分享功能简单实用,却也有很多不方便的地方,我目前做的这个项目中就遇到了一个问题(问题:主界面可以share成功,还有一个affirmation类进去时tableview 点击cell去share 也ok,最后一个 session类进去是tableview->cell -> scrollView ->tableView->cell->share 可以出发share类方法,界面会出现假死机现象,点啥都没反应,也没有crash,也没有任何报错,昨天纠结了一下午,最后发现session类的层级一直把share挪到scrollview之外,share类方法才会触发,所以怀疑是不是跟scrollview有冲突,准备写个demo验证一下),到现在还没找到解决的方法,望大牛们提点一下。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值