截图分享

很多App都有分享的功能,第三方分享需要自己去研究一下shareSDK,研究文档去进行集成,今天我就简单的只介绍一下截图这个功能。

构建button

@property (nonatomic,strong)UIButton *memberBut;
- (UIButton *)memberBut{
    if (!_memberBut) {
        _memberBut = [UIButton buttonWithType:UIButtonTypeCustom];
        _memberBut.backgroundColor = [UIColor whiteColor];
        [_memberBut setTitleColor:GetColor(108, 189, 153, 1) forState:UIControlStateNormal];
    }
    [_memberBut setImage:IMGNAME(@"share") forState:UIControlStateNormal];
        [_memberBut addTarget:self action:@selector(takeScreenAndShare:) forControlEvents:UIControlEventTouchUpInside];
    return _memberBut;
}

实现方法

- (void)takeScreenAndShare:(UIButton *)sender{//截取当前屏幕

    UIImage *screenImage = [self captureScreen];
    NSData *data = UIImagePNGRepresentation(screenImage);
    UIImage *imgBmp = [UIImage imageWithData:data]; //建立UIImage为bmp格式
    NSData *dJpeg = UIImageJPEGRepresentation(imgBmp,1.0);//从bmp格式的Image转为jpeg格式的NSData,其实也可以从任意格式的Image转,不仅限于bmp
    self.imgJPeg = [UIImage imageWithData:dJpeg];//建立UIIMage为jpeg格式
    if ([WeiboSDK isWeiboAppInstalled]) {
        [self.view addSubview:self.aler];
    } else {
        NSArray *imageArray = @[self.imgJPeg];//@[[UIImage imageNamed:@"cryface"]];
        NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
        if (imageArray) {
            [shareParams SSDKSetupShareParamsByText:@""
                                             images:imageArray
                                                url:nil
                                              title:@""
                                               type:SSDKContentTypeAuto];
        }


> 要显示菜单的视图,iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view对象,iPhone可以传nil不会影响

        [ShareSDK showShareActionSheet:nil 
                                 items:nil
                           shareParams:shareParams
                   onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
                       switch (state) {
                           case SSDKResponseStateSuccess:{
                               NSLog(@"分享成功");
                           }
                           case SSDKResponseStateFail:{
                               NSLog(@"失败");
                           }
                           default:
                               break;
                       }
                   }
         ];
    }


> NSData *dBmp = [self buildBmpData];
> 建立一个NSdata,内容为bmp格式:前面54字节为格式,后面的为rgb
> UIImageWriteToSavedPhotosAlbum(self.imgJPeg,nil,nil,nil);//保存到相册
}

- (UIImage *)captureScreen {
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0);//开启一个图片的层,大小为当前屏幕
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//直接把当前屏幕的view填充进当前图层
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();//从图层上,获取一张image,相当于照一张相
    UIGraphicsEndImageContext();
    return img;
}
/*
 UIGraphicsBeginImageContext(viewToCapture.bounds.size);//截得图比较模糊
 UIGraphicsBeginImageContextWithOptions(viewToCapture.bounds.size, NO, 0.0);//原图
 */

三方分享

- (void)action_ShareWithNumber:(NSInteger)number{
    NSLog(@"%ld",number);
    NSArray *imageArray = @[self.imgJPeg];//@[[UIImage imageNamed:@"cryface"]];
    NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
    if (imageArray) {
        [shareParams SSDKSetupShareParamsByText:@""
                                         images:imageArray
                                            url:nil
                                          title:@""
                                           type:SSDKContentTypeAuto];
    }
    [shareParams SSDKEnableUseClientShare];
> 微博
    if (number == 0) {
        [ShareSDK share:SSDKPlatformTypeSinaWeibo parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        }];

    }

> QQ空间
    if (number == 1) {
        [ShareSDK share:SSDKPlatformSubTypeQZone parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        }];
    }
> QQ好友
    if (number == 2) {
        [ShareSDK share:SSDKPlatformSubTypeQQFriend parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        }];
    }
> 微信好友
    if (number == 3) {
        [ShareSDK share:SSDKPlatformSubTypeWechatSession parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        }];
    }
> 微信朋友圈
    if (number == 4) {
        [ShareSDK share:SSDKPlatformSubTypeWechatTimeline parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        }];
    }
> 微信收藏
    if (number == 5) {
        [ShareSDK share:SSDKPlatformSubTypeWechatFav parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        }];
    }
}

以上就是截图进行三方分享的简单demo,如果要使用代码,记得去集成哦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值