1. 程式人生 > >iOS 友盟整合說明之分享到第三方平臺

iOS 友盟整合說明之分享到第三方平臺

分享到第三方平臺

1. 第三方平臺支援的分享型別總覽

在這裡插入圖片描述 在這裡插入圖片描述

2. 分享文字

- (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);
        }
    }];
}

3. 分享圖片

- (void)shareImageToPlatformType:(UMSocialPlatformType)platformType
{
    //建立分享訊息物件
    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];

    //建立圖片內容物件
    UMShareImageObject *shareObject = [[UMShareImageObject alloc] init];
    //如果有縮圖,則設定縮圖
    shareObject.thumbImage = [UIImage imageNamed:@"icon"];
    [shareObject setShareImage:@"https://mobile.umeng.com/images/pic/home/social/img-1.png"];

    //分享訊息物件設定分享內容物件
    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);
        }
    }];
}

4. 分享圖文(新浪支援,微信/QQ僅支援圖或文字分享)

- (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);
        }
    }];
}

5. 分享網頁

- (void)shareWebPageToPlatformType:(UMSocialPlatformType)platformType
{
    //建立分享訊息物件
    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];

    //建立網頁內容物件
    UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:@"分享標題" descr:@"分享內容描述" thumImage:[UIImage imageNamed:@"icon"]];
    //設定網頁地址
    shareObject.webpageUrl [email protected]"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);
        }
    }];
}

6. 分享音樂

- (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);
        }
    }];
}

7. 分享視訊

- (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;

    //呼叫分享介面
    [[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);
        }
    }];
}

8. 分享微信表情

- (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);
            }
        }
    }];
}

9. 分享微信小程式

- (void)shareMiniProgramToPlatformType:(UMSocialPlatformType)platformType
{
    //建立分享訊息物件
    UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];

    UMShareMiniProgramObject *shareObject = [UMShareMiniProgramObject shareObjectWithTitle:@"小程式標題" descr:@"小程式內容描述" thumImage:[UIImage imageNamed:@"icon"]];
    shareObject.webpageUrl = @"相容微信低版本網頁地址";
    shareObject.userName = @"小程式username,如 gh_3ac2059ac66f";
    shareObject.path = @"小程式頁面路徑,如 pages/page10007/page10007";
    messageObject.shareObject = shareObject;
    shareObject.hdImageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"logo" ofType:@"png"]];
    shareObject.miniProgramType = UShareWXMiniProgramTypeRelease; // 可選體驗版和開發板

    //呼叫分享介面
    [[UMSocialManager defaultManager] shareToPlatform:platformType messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
        if (error) {
            UMSocialLogInfo(@"************Share fail with error %@*********",error);
        }else{
            if ([data isKindOfClass:[UMSocialShareResponse class]]) {
                UMSocialShareResponse *resp = data;
                //分享結果訊息
                UMSocialLogInfo(@"response message is %@",resp.message);
                //第三方原始返回的資料
                UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);

            }else{
                UMSocialLogInfo(@"response data is %@",data);
            }
        }
        [self alertWithError:error];
    }];
}

10. 示例

分享文字到微信
#import <UMShare/UMShare.h>

- (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];
    }];
}
呼叫分享面板分享文字到所選平臺
#import <UShareUI/UShareUI.h>
#import <UMShare/UMShare.h>

- (void)shareWithUI {

    //顯示分享面板
    [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
        // 根據獲取的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);
            }
        }];
    }];
}

後記

本篇主要介紹了分享的型別以及示例程式碼,感興趣的給個贊或者關注~~~