基于shareSDK自定义分享界面

#import "CLShareView.h"
#import "CLCustomButton.h"
#import <ShareSDK/ShareSDK.h>
#import "MBProgressHUD+MJ.h"
#import "WeiboSDK.h"
#import "WXApi.h"
#import <TencentOpenAPI/QQApiInterface.h>
#import <MessageUI/MessageUI.h>
#import<MessageUI/MFMailComposeViewController.h>
@interface CLShareView()

/***/
@property (nonatomic,strong) NSArray *imgArr;
@property (nonatomic,strong) NSArray *titleArr;
@end
@implementation CLShareView

- (instancetype)init
{
    self = [super init];
    if (self) {
        // 创建一个阴影
        UIWindow *win = [UIApplication sharedApplication].keyWindow;
        UIView *cover = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
        cover.backgroundColor = [UIColor blackColor];
        cover.tag = 100;
        cover.alpha = 0.8;
        [win addSubview:cover];
        // 创建一个提示框
        CGFloat tipX = 20;
        CGFloat tipW = cover.frame.size.width - 2*tipX;
        CGFloat tipH = tipW;
        
        UIView *tipViews = [[UIView alloc] initWithFrame:CGRectMake(tipX, CLScreenH, tipW, tipW)];
        tipViews.backgroundColor = [UIColor colorWithWhite:1 alpha:0.9];
        [win addSubview:tipViews];
        [UIView animateWithDuration:0.25 animations:^{
            CGFloat tipY = (CLScreenH-tipW)*0.5;
            tipViews.frame = CGRectMake(tipX, tipY, tipW, tipH);
        } completion:^(BOOL finished) {
            
        }];
        
        UILabel *lable = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, tipViews.frame.size.width, 30)];
        lable.text  =@"分享到";
        lable.textAlignment = NSTextAlignmentCenter;
        lable.font = [UIFont systemFontOfSize:15];
        [tipViews addSubview:lable];
       Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
        
        if ((![WXApi isWXAppInstalled]&&[QQApiInterface isQQInstalled])&&[messageClass canSendText]) {
            self.imgArr = @[@"QQ",@"QQzoom",@"新浪",@"短信",@"邮件"];
            self.titleArr = @[@"QQ好友",@"QQ空间",@"新浪微博",@"短信",@"收藏"];
        }else if ((![WXApi isWXAppInstalled])&&(![WeiboSDK isWeiboAppInstalled]&&[QQApiInterface isQQInstalled])&&[messageClass canSendText]){
            self.imgArr = @[@"QQ",@"QQzoom",@"短信",@"邮件"];
            self.titleArr = @[@"QQ好友",@"QQ空间",@"短信",@"收藏"];
        } else if (![QQApiInterface isQQInstalled]&&[WXApi isWXAppInstalled]&&[messageClass canSendText]){
            self.imgArr = @[@"weixin",@"朋友圈",@"收藏",@"新浪",@"短信",@"邮件"];
            self.titleArr = @[@"微信好友",@"微信朋友圈",@"微信收藏",@"新浪微博",@"短信",@"收藏"];
        } else if ((![QQApiInterface isQQInstalled])&&(![WXApi isWXAppInstalled])&&[messageClass canSendText]){
            self.imgArr = @[@"新浪",@"短信",@"邮件"];
            self.titleArr = @[@"新浪微博",@"短信",@"收藏"];
        } else if ((![QQApiInterface isQQInstalled])&&([WXApi isWXAppInstalled])&&![messageClass canSendText]){
            self.imgArr = @[@"weixin",@"朋友圈",@"收藏",@"新浪",@"邮件"];
            self.titleArr = @[@"微信好友",@"微信朋友圈",@"微信收藏",@"新浪微博",@"收藏"];
        } else if ((![messageClass canSendText])&&(![QQApiInterface isQQInstalled])&&(![WXApi isWXAppInstalled])){
            self.imgArr = @[@"新浪",@"邮件"];
            self.titleArr = @[@"新浪微博",@"收藏"];
        } else if (([QQApiInterface isQQInstalled])&&([WXApi isWXAppInstalled])&&[WeiboSDK isWeiboAppInstalled]&&[messageClass canSendText]){
            self.imgArr = @[@"QQ",@"QQzoom",@"weixin",@"朋友圈",@"收藏",@"新浪",@"短信",@"邮件"];
            self.titleArr = @[@"QQ好友",@"QQ空间",@"微信好友",@"微信朋友圈",@"微信收藏",@"新浪微博",@"短信",@"收藏"];
        }else if ([QQApiInterface isQQInstalled]&&[WXApi isWXAppInstalled]&&![messageClass canSendText]){
            self.imgArr = @[@"weixin",@"朋友圈",@"收藏",@"新浪",@"邮件"];
            self.titleArr = @[@"微信好友",@"微信朋友圈",@"微信收藏",@"新浪微博",@"收藏"];
        }
       
        for (int i = 0; i < self.titleArr.count; i++) {
            int line = 4;
            CGFloat btnW = tipViews.frame.size.width/line;
            CGFloat btnX = i%line*btnW;
            CGFloat btnY = i/line*btnW;
            UIButton *btnShare = [[CLCustomButton alloc] initWithFrame:CGRectMake(btnX,70 + btnY, btnW, btnW)];
            btnShare.tag = i+100;
            btnShare.imageView.contentMode = UIViewContentModeScaleAspectFit;
            [btnShare setTitle:self.titleArr[i] forState:UIControlStateNormal];
            [btnShare setImage:[UIImage imageNamed:self.imgArr[i]] forState:UIControlStateNormal];
            [btnShare addTarget:self action:@selector(clickBtn:) forControlEvents:UIControlEventTouchUpInside];
            [tipViews addSubview:btnShare];
        }
        
        UIButton *cancelBtn = [[UIButton alloc] initWithFrame:CGRectMake((tipViews.frame.size.width-50)*0.5, tipViews.frame.size.height - 60, 50, 50)];
        [cancelBtn setBackgroundImage:[UIImage imageNamed:@"取消"] forState:UIControlStateNormal];
        [cancelBtn addTarget:self action:@selector(clickCancel) forControlEvents:UIControlEventTouchUpInside];
        [tipViews addSubview:cancelBtn];

    }
    return self;
}

- (void)clickCancel
{
    UIWindow *win = [UIApplication sharedApplication].keyWindow;
    [win.subviews.lastObject removeFromSuperview];
    UIWindow *win2 = [UIApplication sharedApplication].keyWindow;
    [win2.subviews.lastObject removeFromSuperview];
    UIWindow *win3 = [UIApplication sharedApplication].keyWindow;
    [win3.subviews.lastObject removeFromSuperview];
}

- (void)setContent:(NSString *)content
{
    _content = content;
    NSUserDefaults *userD = [NSUserDefaults standardUserDefaults];
    [userD setValue:_content forKey:@"1"];
    [userD synchronize];
}

- (void)clickBtn:(UIButton *)btn
{
    [self initWithBtn:btn];
}
- (void)initWithBtn:(UIButton *)btn
{
    NSUserDefaults *userD = [NSUserDefaults standardUserDefaults];
    NSString *str = [userD objectForKey:@"1"];
    //创建分享参数
    NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
    [shareParams SSDKEnableUseClientShare];
    [shareParams SSDKSetupShareParamsByText:str
                                     images:nil
                                        url:nil
                                      title:nil
                                       type:SSDKContentTypeAuto];
    if ([btn.titleLabel.text isEqualToString:@"QQ好友"]) { //QQ
        [ShareSDK share:SSDKPlatformTypeQQ parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
            if (state == SSDKResponseStateSuccess) {
                [MBProgressHUD showSuccess:@"分享成功"];
            }

        }];
    }
    if ([btn.titleLabel.text isEqualToString:@"QQ空间"]) { // QQ 空间
        NSMutableDictionary *shareParams2 = [NSMutableDictionary dictionary];
        [shareParams2 SSDKEnableUseClientShare];
        [shareParams2 SSDKSetupShareParamsByText:str
                                         images:@"logo.png"
                                            url:[NSURL URLWithString:GoToAppS]
                                          title:@"累了吗这款应用还不错哦"
                                           type:SSDKContentTypeAuto];
        [ShareSDK share:SSDKPlatformSubTypeQZone parameters:shareParams2 onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
            if (state == SSDKResponseStateSuccess) {
                [MBProgressHUD showSuccess:@"分享成功"];
            }
            
        }];
    }

    if ([btn.titleLabel.text isEqualToString:@"微信好友"]) {
        [ShareSDK share:SSDKPlatformTypeWechat parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
            if (state == SSDKResponseStateSuccess) {
                [MBProgressHUD showSuccess:@"分享成功"];
            }
            
        }];
    }

    if ([btn.titleLabel.text isEqualToString:@"微信朋友圈"]) {
        [ShareSDK share:SSDKPlatformSubTypeWechatTimeline parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
            if (state == SSDKResponseStateSuccess) {
                [MBProgressHUD showSuccess:@"分享成功"];
            }
            
        }];
    }

    if ([btn.titleLabel.text isEqualToString:@"微信收藏"]) {
        [ShareSDK share:SSDKPlatformSubTypeWechatFav parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
            if (state == SSDKResponseStateSuccess) {
                [MBProgressHUD showSuccess:@"收藏成功"];
            }
            
        }];
    }

    if ([btn.titleLabel.text containsString:@"新浪微博"]) {

        [ShareSDK share:SSDKPlatformTypeSinaWeibo
                      parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
                          if (state == SSDKResponseStateSuccess) {
                              [MBProgressHUD showSuccess:@"分享成功"];
                          } else if(state == SSDKResponseStateFail){
                              NSLog(@"%@",error);
                          }
        }];
    }

    if ([btn.titleLabel.text isEqualToString:@"短信"]) {
        [ShareSDK share:SSDKPlatformTypeSMS parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
            if (state == SSDKResponseStateSuccess) {
                [MBProgressHUD showSuccess:@"分享成功"];
            }
            
        }];
    }
    
    if ([btn.titleLabel.text isEqualToString:@"收藏"]) {
        [self clickCancel];
         self.btnSelected();
    }
}
@end

 

 

 

移动端技术热门技术交流群170229489

posted @ 2016-05-20 13:58  Darren-chen  阅读(578)  评论(0编辑  收藏  举报