美文网首页
友盟cocoaPods方式集成社会化分享(微信好友及朋友圈)

友盟cocoaPods方式集成社会化分享(微信好友及朋友圈)

作者: jiangzz | 来源:发表于2021-02-22 13:46 被阅读0次

    前提:项目中已集成微信支付(Podfile 文件中包含 )

    pod 'WechatOpenSDK'
    

    如果已集成微信支付再集成完整版友盟微信分享SDK 会导致 库文件重复问题,本章通过集成精简版SDK实现微信分享

    一、集成SDK

    • 在Podfile文件中添加
    pod 'UMengUShare/Social/ReducedWeChat' //友盟微信分享精简版SDK
    

    pod install,打开项目。

    集成微信分享SDK.png

    二、友盟平台获取创建的应用的appKey

    • 注册友盟账号
    • 添加应用(应用创建完成自动生成appKey)


      获取appKey.png

    三、application 方法中添加如下代码

    • pch文件中导入头文件
    #import <UMSocialCore/UMSocialCore.h>
    
    • application 方法中添加代码
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
       [[UMSocialManager defaultManager] setUmSocialAppkey:@"第二步中获取得appKey"];
        /*
         设置微信的appKey和appSecret
         [微信平台从U-Share 4/5升级说明]http://dev.umeng.com/social/ios/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3#1_1
         */
       [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"微信开放平台的appKey" appSecret:@"微信开放平台的appSecret" redirectURL:nil];
    
    }
    

    四、分享方法

    [self shareContent:UMSocialPlatformType_WechatSession];//分享到微信好友
    [self shareContent:UMSocialPlatformType_WechatTimeLine];//分享到朋友圈
    
    • 分享图片
    ///默认分享的是Https图片,处理http图片分享不出去
    [UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
    
    - (void)shareContent:(UMSocialPlatformType)platformType
    {
        //创建分享消息对象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
        //创建图片内容对象
        UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];
        //如果有缩略图,则设置缩略图
        //shareObject.thumbImage = [UIImage imageNamed:@"image1"];
        [shareObject setShareImage:[self screenShotView: self.popularizeContentView.shareView]];
        //分享消息对象设置分享内容对象
        messageObject.shareObject = shareObject;
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                NSLog(@"response data is %@",data);
            }
        }];
    }
    
    • 分享网页
    - (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType
    {
        //创建分享消息对象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
        //创建网页内容对象
        UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"分享标题" descr:@"分享内容描述" thumImage:[UIImage imageNamed:@"icon"]];
        //设置网页地址
        shareObject.webpageUrl =@"http://mobile.umeng.com/social";
        //分享消息对象设置分享内容对象
        messageObject.shareObject = shareObject;
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                NSLog(@"response data is %@",data);
            }
        }];
    }
    
    • 分享图文
    - (void)shareImageAndTextToPlatformType:(UMSocialPlatformType)platformType
    {
        //创建分享消息对象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
    
        //设置文本
        messageObject.text = @"社会化组件UShare将各大社交平台接入您的应用,快速武装App。";
    
        //创建图片内容对象
        UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];
        //如果有缩略图,则设置缩略图
        shareObject.thumbImage = [UIImage imageNamed:@"icon"];
        [shareObject setShareImage:@"https://www.umeng.com/img/index/demo/1104.4b2f7dfe614bea70eea4c6071c72d7f5.jpg"];
    
        //分享消息对象设置分享内容对象
        messageObject.shareObject = shareObject;
    
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                NSLog(@"response data is %@",data);
            }
        }];
    }
    
    • 分享文本
    - (void)shareTextToPlatformType:(UMSocialPlatformType)platformType
    {
        //创建分享消息对象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
        //设置文本
        messageObject.text = @"社会化组件UShare将各大社交平台接入您的应用,快速武装App。";
    
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                NSLog(@"response data is %@",data);
            }
        }];
    }
    
    • 分享视频
    - (void)shareVedioToPlatformType:(UMSocialPlatformType)platformType
    {
        //创建分享消息对象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
    
        //创建视频内容对象
        UMShareVideoObject *shareObject = [UMShareVideoObject shareObjectWithTitle:@"分享标题" descr:@"分享内容描述" thumImage:[UIImage imageNamed:@"icon"]];
        //设置视频网页播放地址
        shareObject.videoUrl = @"http://video.sina.com.cn/p/sports/cba/v/2013-10-22/144463050817.html";
        //            shareObject.videoStreamUrl = @"这里设置视频数据流地址(如果有的话,而且也要看所分享的平台支不支持)";
    
        //分享消息对象设置分享内容对象
        messageObject.shareObject = shareObject;
    
         //企业微信和抖音的设置视频的数据
        NSString* path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"];
        NSData* videoData =  [NSData dataWithContentsOfFile:path];
        shareObject.videoName = @"video.mp4";
        shareObject.videoData = videoData;
    
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                NSLog(@"response data is %@",data);
            }
        }];
    }
    
    • 分享音乐
    - (void)shareMusicToPlatformType:(UMSocialPlatformType)platformType
    {
        //创建分享消息对象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
    
        //创建音乐内容对象
        UMShareMusicObject *shareObject = [UMShareMusicObject shareObjectWithTitle:@"分享标题" descr:@"分享内容描述" thumImage:[UIImage imageNamed:@"icon"]];
        //设置音乐网页播放地址
        shareObject.musicUrl = @"http://c.y.qq.com/v8/playsong.html?songid=108782194&source=yqq#wechat_redirect";
        //            shareObject.musicDataUrl = @"这里设置音乐数据流地址(如果有的话,而且也要看所分享的平台支不支持)";
        //分享消息对象设置分享内容对象
        messageObject.shareObject = shareObject;
    
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                NSLog(@"response data is %@",data);
            }
        }];
    }
    
    • 分享微信表情
    - (void)shareEmoticonToPlatformType:(UMSocialPlatformType)platformType
    {
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
    
        UMShareEmotionObject *shareObject = [UMShareEmotionObject shareObjectWithTitle:UMS_Title descr:UMS_Text thumImage:nil];
    
        NSString *filePath = [[NSBundle mainBundle] pathForResource:@"gifFile"
                                                             ofType:@"gif"];
        NSData *emoticonData = [NSData dataWithContentsOfFile:filePath];
        shareObject.emotionData = emoticonData;
        messageObject.shareObject = shareObject;
    
        //调用分享接口
        [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            if (error) {
                NSLog(@"************Share fail with error %@*********",error);
            }else{
                if ([data isKindOfClass:[UMSocialShareResponse class]]) {
                    UMSocialShareResponse *resp = data;
                    //分享结果消息
                    NSLog(@"response message is %@",resp.message);
    
                }else{
                    NSLog(@"response data is %@",data);
                }
            }
        }];
    }
    
    • 实例 分享纯文本
    - (void)shareTextToWechat
    {
        NSString *text = @"社会化组件U-Share将各大社交平台接入您的应用,快速武装App。";
    
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
    
        messageObject.text = text;
    
        [[UMSocialManager defaultManager] shareToPlatform:UMSocialPlatformType_WechatSession messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
            NSString *message = nil;
            if (!error) {
                message = [NSString stringWithFormat:@"分享成功"];
            } else {
                message = [NSString stringWithFormat:@"失败原因Code: %d\n",(int)error.code];
    
            }
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"share"
                                                            message:message
                                                           delegate:nil
                                                  cancelButtonTitle:NSLocalizedString(@"确定", nil)
                                                  otherButtonTitles:nil];
            [alert show];
        }];
    }
    

    相关文章

      网友评论

          本文标题:友盟cocoaPods方式集成社会化分享(微信好友及朋友圈)

          本文链接:https://www.haomeiwen.com/subject/jtrhfltx.html