截图分享

来源:互联网 发布:柳州市一职校淘宝地址 编辑:程序博客网 时间:2024/06/07 19:54

很多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