友盟+搜索

{{errorMsg}}

第三方平台SDK说明

微信

U-Share 4/5 升级说明

如果是U-Share4/5版本升级到6.0以上版本,需注意以下几点:

  1. 老版本从微信平台授权获取的usidopenId是相同的。
  2. 升级到6.0以上版本后,微信平台获取的usid调整为通用名uid,并提供了用以打通QQ互联下应用的通用unionId,不再是openId数值。
  3. 如果老版本下通过微信授权获取了usid作为用户id存储,升级后可从授权信息UMSocialUserInfoResponse结果中获取openid延续之前的用户id。若需获取打通所有QQ互联应用的通用id,可以直接获取授权结果UMSocialUserInfoResponse中的uid(即微信的unionId)进行处理。

unionId简介:开发者在QQ互联平台下拥有的多个移动应用、网站应用,获取的用户unionId是相同的,详情参考微信获取用户基本信息(UnionID机制)

新浪微博

配置ATS以支持访问HTTP请求

由于新浪微博SDK还未更新ATS的支持,故目前需要对其进行配置,可根据所选平台裁剪以下代码: 右键info.plist用source code打开

<key>NSAppTransportSecurity</key>
<dict>
   <key>NSExceptionDomains</key>
   <dict>
       <!-- 集成新浪微博对应的HTTP白名单-->
       <key>sina.com.cn</key>
       <dict>
           <key>NSIncludesSubdomains</key>
           <true/>
           <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
           <true/>
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
       <key>sinaimg.cn</key>
       <dict>
           <key>NSIncludesSubdomains</key>
           <true/>
           <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
           <true/>
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
       <key>sinajs.cn</key>
       <dict>
           <key>NSIncludesSubdomains</key>
           <true/>
           <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
           <true/>
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
       <key>sina.cn</key>
       <dict>
           <!-- 适配iOS10 -->
           <key>NSExceptionMinimumTLSVersion</key>
           <string>TLSv1.0</string>
           <key>NSIncludesSubdomains</key>
           <true/>
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
       <key>weibo.cn</key>
       <dict>
           <!-- 适配iOS10 -->
           <key>NSExceptionMinimumTLSVersion</key>
           <string>TLSv1.0</string>
           <key>NSIncludesSubdomains</key>
           <true/>
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
       <key>weibo.com</key>
       <dict>
           <!-- 适配iOS10 -->
           <key>NSExceptionMinimumTLSVersion</key>
           <string>TLSv1.0</string>
           <key>NSIncludesSubdomains</key>
           <true/>
           <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
           <true/>
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
       <!-- 新浪微博-->
   </dict>
</dict>

新浪登录回调方法要求

未安装新浪微博客户端时会弹出Webview进行登录和分享,之后会回调至以下函数:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

如果用户没有重载此函数的话,会导致微博SDK通过Webview的回调而崩溃。 开发者需重载此方法接受系统回调。

分享LinkCard(网页分享)

进行网页链接分享是多数应用进行推广和分享的形式,包含了标题、描述和缩略图,不像微信和QQ平台分享后会显示一张Card形式的消息,点开后会打开连接。微博的形式略有不同。

  • 什么是LinkCard 在微博消息流内,分享一条链接,该链接将解析为包含一个对象数据的特殊短链,且该对象数据可以在微博消息流内显示并交互,这种形态就是微博消息流LinkCard解析。 参考微博-移动客户端接入

  • 分享网页类型数据之后不显示缩略图 是什么原因 这属于微博的移动应用商务合作,移动SDK中的LinkCard和附件栏集成分享权限需要合作申请,对接请联系微博商务:yinle@staff.weibo.com

ADSupport及IDFA的说明

如果开发者希望集成ADSupport.framework,在进行ipa提交store时候勾选用于跟踪用户广告效果的选项即可。

如果开发者希望不集成ADSupport.framework,即获取IDFA,可直接删去ADSupport.framework。不集成ADSupport.framework不会影响微博的登录和分享功能。

QQ/QZone

初始化appId说明

U-Share SDK为了兼容大部分平台命名,统一用appKey和appSecret进行参数设置,而QQ平台仅需将appID作为U-Share的appKey参数传进即可。 例如Demo中的示例代码:

    /* 设置QQ互联appKey */
    NSString *qqAppID = @"100424468";
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:qqAppID  appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];

人人

配置ATS以支持访问HTTP请求

人人平台的服务器目前未支持HTTPS,需要添加相应配置,右键info.plist用source code打开,找到NSAppTransportSecurity并添加人人的白名单

<key>NSAppTransportSecurity</key>
<dict>
   <key>NSExceptionDomains</key>
   <dict>
       <!-- 集成人人授权对应的HTTP白名单-->
       <key>renren.com</key>
       <dict>
           <key>NSIncludesSubdomains</key>
           <true/>
           <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
           <true/>
           <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
           <false/>
       </dict>
       <!-- 人人授权-->
   </dict>
</dict>

Facebook/Messenger

配置info.plist

  • 除配置URL Scheme外,Facebook SDK还要求在info.plist文件中加入两项参数,分别是:
    • FacebookAppID
    • FacebookDisplayName
  • 以上参数值是在Facebook开发者平台https://developers.facebook.com/apps 设置并获取对应的AppIDDisplay Name
  • 如U-Share Demo的测试AppID为506027402887373, Display Name为UmengShare。则加入两项参数为
    • FacebookAppID : 506027402887373
    • FacebookDisplayName : UmengShare

登录授权流程说明

  • 登录(6.2版本以前的登录)

Facebook SDK授权流程: 1. 弹出Safari网页,显示登录页面 2. 页面中可选通过Facebook APP授权,或输入账号密码授权 3. 通过Facebook APP授权可通过SSO跳转到Facebook APP面输账号进行登录 4. 通过账号密码形式进行登录后下次授权会默认在Safari中登录

  • 登出(取消授权)(6.2版本以前的登录)

通过U-Share SDK执行取消Facebook平台授权仅移除APP内登录数据,若希望下次切换其他账号,需要在Safari中登录www.facebook.com,在页面内进行登出操作。

  • 登录(6.3版本授权)

Facebook SDK授权流程: 由于新版Facebook SDK的更新,登录流程和之前的流程有很大不同, facebook可以通过配置在facebook官网配置登陆的流程(sso或web),每次启动的时候会获得facebook的serverConfig来决定是否SSO登陆或者web登陆。 1. 如果成功获得serverConfig的配置参数,就会根据配置参数来决定选择是否sso或web登陆。 2. 如果未成功获得serverConfig的配置参数,就会直接做web登陆(此流程同 登录(6.2版本以前的登录)

备注:不管是哪个版本,授权都需要申请“publish_actions”权限,以便使用facebook的rest api

  • 登出(取消授权)(6.3版本授权)

通过U-Share SDK执行取消Facebook平台授权仅移除APP内登录数据,若希望下次切换其他账号,需要在Safari中登录www.facebook.com,在页面内进行登出操作。

Facebook分享行为的注意事项

新版的Facebook为兼容老版本的分享包含为restAPI分享和Dialog的(所见即所得)分享形式。

  1. restAPI分享 主要分享的是带文本的类型,比如:纯文本分享,图文分享等 其分享行为是调用RestAPI,没有界面跳转,只有回调结果,但是需要先授权才能分享。

  2. Dialog的(所见即所得)分享 主要的分享是不带文本的分享,比如:图片分享,webpage分享等。 其分享行为是弹出对话框让用户预览用户要分享的内容,方便用户查看,不需要授权也能分享。

  3. 分享后返回错误506 发送的内容重复,修改为其他内容后可以成功分享。

Messenger

Facebook Messenger仅可进行分享,支持图片、网页、视频和音乐分享类型。

Facebook SDK集成注意事项

6.3版本Facebook的SDK只能在iOS8.0上使用

Twitter

加入Twitter bundle文件

将附带Twitter SDK的U-Share SDK加入工程后,还需导入Twitter的资源文件 1. 在Xcode项目中,右键U-Share SDK下的Twitter目录 2. 找到TwitterKitResources.bundle并导入,其路径为

Twitter/TwitterKit.framework/Resources/TwitterKitResources.bundle

登录授权流程说明

  • 登录 Twitter SDK授权流程:
    1. 检测iOS系统内以及安装的Twitter APP有无登录Twitter账号
    2. 已在系统及APP登录则直接使用登录账号
    3. 未在系统登录则弹出授权页面进行登录,登录成功后同时同步账号到系统Twitter账号
  • 登出(取消授权)
    通过U-Share SDK执行取消Twitter平台授权仅移除APP内登录数据,若希望下次切换其他账号,需要在系统或Twitter APP内进行登出操作

Twitter错误码说明

官方错误码:https://dev.twitter.com/overview/api/response-codes

  • 401

1、检查在U-Share中设置的Twitter appkey和appsecret是否和Twitter开发者后台相匹配。 2、检查Twitter开发者后台中设置的Callback URL。 3、检查Twitter开发者后台中Details选项里的Access level,确保为Read and write权限。

Kakao

配置info.plist

  • Kakao SDK要求在info.plist文件中加入两项参数分别是:
    • KAKAO_APP_KEY
    • KAKAO_SECURE_MODE
  • 以上参数值在https://developers.kakao.com/appsKakao开发者平台设置的获取的AppKey
  • 如U-Share Demo的测试AppKey为6d5e4ca98ba3b944020c2c90953318e9。则加入两项参数为
    • KAKAO_APP_KEY : 6d5e4ca98ba3b944020c2c90953318e9
    • KAKAO_SECURE_MODE : NO (注:布尔类型)

配置URL Scheme

  • URL Scheme格式
    kakao + Kakao AppKey
  • URL Scheme举例 如Kakao AppKey为:6d5e4ca98ba3b944020c2c90953318e9 实际参数:kakao6d5e4ca98ba3b944020c2c90953318e9

  • 依照图示添加URL Types

  • 依照图中输入框说明填入参数,如以上示例Facebook ID

    • URL Types
    URL Schemes: kakao6d5e4ca98ba3b944020c2c90953318e9
    
    

    请勿直接使用上述示例参数,多个App使用同样的URL Schemes参数会导致从第三方App跳转回原App时混乱。

配置跳转白名单

进行登录时要跳转到Kakao应用,需要在info.plist中的LSApplicationQueriesSchemes添加以下代码

        <string>kakao6d5e4ca98ba3b944020c2c90953318e9</string>
        <string>kakaokompassauth</string>
        <string>storykompassauth</string>
        <string>kakaolink</string>
        <string>kakaotalk-4.5.0</string>
        <string>kakaostory-2.9.0</string

注:上述kakao6d5e4ca98ba3b944020c2c90953318e9值需要根据以上配置URL Scheme一样改成开发者获取的AppKey,加上前缀kakao

分享到第三方平台

第三方平台支持的分享类型总览

平台 文本 图片 图文 Web链接 视频链接 音乐链接 其他
微信好友 × gif表情及文件
微信朋友圈 × -
微信收藏 × 文件
新浪微博 -
QQ × -
QQ空间 × -
支付宝 × -
钉钉 × × × -
点点虫 × -
易信 × -
豆瓣 × × × -
人人 × × × -
腾讯微博 × × × -
有道云笔记 × × × 文件
印象笔记 文件
有道云笔记 -
Linkedin(领英) 图片链接必须为网络链接,不支持本地图片
Facebook -
FaceBookMessenger × -
Twitter -
Instagram × × × × × -
Kakao × × × -
Line × × × -
Tumblr × × × × × -
Pinterest × × × × × 图片必须为网络链接
WhatsApp × × × × -
Flickr × × × × × -
Google+ × -
Pocket × × 图片为网络链接
VKontakte × -
DropBox × 文件
短信 -
邮件 -

分享文本

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

分享图文(新浪支持,微信/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);
        }
    }];
}

分享网页

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

示例

  • 分享文本到微信:
#import <UMSocialCore/UMSocialCore.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 <UMSocialCore/UMSocialCore.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);
            }
        }];
    }];
}


分享面板UI

分享面板注意事项

由于 1. 创建Xcode项目会默认添加Main.storyboard作为Main Interface(General - Deployment Info),也就是项目的主Window。 2. 如果没使用Main.storyboard而又另外在AppDelegate中创建了UIWindow对象,如

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]

如果项目中同时出现Main Interface以及代码创建UIWindow会导致分享面板无法正常弹出,解决方法是移除其一即可。

UMSocialUIManager

#import <UShareUI/UShareUI.h>

@interface UMSocialUIManager : NSObject

+ (void)showShareMenuViewInWindowWithPlatformSelectionBlock:(UMSocialSharePlatformSelectionBlock)sharePlatformSelectionBlock;

@end


调用分享面板

#import <UShareUI/UShareUI.h>
//显示分享面板
[UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
    // 根据获取的platformType确定所选平台进行下一步操作
}];

定制自己的分享面板预定义平台

#import <UShareUI/UShareUI.h>
 [UMSocialUIManager setPreDefinePlatforms:@[@(UMSocialPlatformType_Sina),@(UMSocialPlatformType_QQ),@(UMSocialPlatformType_WechatSession)]];
 [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
    // 根据获取的platformType确定所选平台进行下一步操作
}];

  • 此函数需要在showShareMenuViewInWindowWithPlatformSelectionBlock之前调用
  • 传入的平台必须是合法并且是core模块已经检测到的已经存在的平台,不然会被过滤掉(此条款是上线appStore审核的条件,开发者必须注意)

定制自己的分享面板

目前分享面板已经模块,用户可以根据自己的需求来自定义自己需要的面板。 该面板分有四个主体控件组成。

  • UMSocialShareTitleView title控件
  • UMSocialSharePageScrollView 分页控件
  • UMSocialSharePageControl PageControl控件
  • UMSocialShareCancelControl CancelControl控件

每个对应的控件对应相应的配置类,方便用户自己通过配置参数来控制控件的外观。 每个控件对应相应的配置类,如下:

UMSocialShareTitleView  --> UMSocialShareTitleViewConfig
UMSocialSharePageScrollView --> UMSocialSharePageScrollViewConfig
UMSocialSharePageControl --> UMSocialSharePageControlConfig
UMSocialShareCancelControl --> UMSocialShareCancelControlConfig

UMSocialShareTitleViewConfig 的参数如下:

BOOL isShow;//是否显示
NSString* shareTitleViewTitleString;//标题的文字
UIFont* shareTitleViewFont;//字体
UIColor* shareTitleViewTitleColor;//文字颜色
UIColor* shareTitleViewBackgroundColor;//背景颜色
CGFloat shareTitleViewPaddingTop;//title的内边距top
CGFloat shareTitleViewPaddingBottom;//title的内边距Bottom

UMSocialSharePageScrollViewConfig 的参数如下:

CGFloat shareScrollViewPageMaxItemWidth; //每页Items的最大宽度
CGFloat shareScrollViewPageMaxItemHeight; //每页Items的最大高度
UMSocialPlatformItemViewBackgroudType shareScrollViewPageItemStyleType;//每个Item的背景类型
CGFloat shareScrollViewPageMaxRowCountForPortraitAndBottom; //每页显示最大的行(在底部显示手机处于肖像模式)
CGFloat shareScrollViewPageMaxColumnCountForPortraitAndBottom; //每页显示最大的列(在底部显示手机处于肖像模式)
....

UMSocialSharePageControlConfig 的参数如下:

BOOL isShow;//是否显示
UIColor*  sharePageControlPageIndicatorTintColor;//指示器颜色
UIColor*  sharePageControlCurrentPageIndicatorTintColor;//当前的页的颜色
BOOL      sharePageControlHidesForSinglePage;//为一页是会隐藏
UIColor*  sharePageControlBackgroundColor;//背景色

UMSocialShareCancelControlConfig的参数如下:

BOOL isShow;//是否显示
NSString* shareCancelControlText;//相对父view的左边距
UIColor* shareCancelControlTextColor;//文字颜色
UIFont* shareCancelControlTextFont;//文字字体
UIColor* shareCancelControlBackgroundColor;//背景颜色;

示例代码如下: 要修改当前分享面板为:无titleview,面板显示再中间,肖像模式下的2行3列,风景模式2行6列,没有取消控件。


    //配置上面需求的参数
    [UMSocialShareUIConfig shareInstance].shareTitleViewConfig.isShow = NO;
    [UMSocialShareUIConfig shareInstance].sharePageGroupViewConfig.sharePageGroupViewPostionType = UMSocialSharePageGroupViewPositionType_Middle;
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxRowCountForPortraitAndMid = 2;
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxColumnCountForPortraitAndMid = 3;
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxRowCountForLandscapeAndMid = 2;
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageMaxColumnCountForLandscapeAndMid = 6;
    [UMSocialShareUIConfig shareInstance].shareCancelControlConfig.isShow = NO;

    //调用分享面板
     [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
    // 根据获取的platformType确定所选平台进行下一步操作
}];

示例代码如下:

要修改当前分享面板为:分享面板的滑动的区域的背景色为红色,每页的背景色为黄色,去掉毛玻璃效果。

    //配置上面需求的参数
        //shareScrollView背景色为红色
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewBackgroundColor = [UIColor redColor];
    //每页的背景颜色为黄色
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageBGColor = [UIColor yellowColor];
    //去掉毛玻璃效果
    [UMSocialShareUIConfig shareInstance].shareContainerConfig.isShareContainerHaveGradient = NO;
    //调用分享面板
     [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
    // 根据获取的platformType确定所选平台进行下一步操作
}];

该分享面板已经适配了ios和ipad,具体的参数已经设置完成,用户可以在此基础上微调一些参数,来定制自己特有风格的分享面板。

每个对应的控件都可以独立设置,并且用户可以自己定义自己风格的控件外观。

友情提示:每个控件的配置信息需要再合理的范围内。

在分享面板定制自己的icon的操作

(此版本在6.1.1版本上新加入的接口)

在有些时候,用户希望在分享面板上加入一个属于自己特有的图标,用户自己在回调的时候控制点击该平台需要做的事。

比如用户希望在分享面板后面加一个“copy”功能。(注意每个在分享面板上显示的icon对应一个平台以UMSocialPlatformType类型作为标记) 假定“copy”功能需要设置一个UMSocialPlatformType类型为:UMSocialPlatformType_UserDefine_Begin+2

代码如下:

    //加入copy的操作
    //@see http://dev.umeng.com/social/ios/进阶文档#6

    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+2
                                     withPlatformIcon:[UIImage imageNamed:@"auth_icon"]
                                     withPlatformName:@"copy"];

    [UMSocialShareUIConfig shareInstance].sharePageGroupViewConfig.sharePageGroupViewPostionType = UMSocialSharePageGroupViewPositionType_Bottom;
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageItemStyleType = UMSocialPlatformItemViewBackgroudType_None;
    [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
        //在回调里面获得点击的
        if (platformType == UMSocialPlatformType_UserDefine_Begin+2) {
            NSLog(@"do your operation for copy");
        }
        else{
            [self runShareWithType:platformType];
        }
    }];


用户设置图标时,需要和保持预定于的图标大小一样,以保持美观

用户自定义平台

自定义的平台类型的选取

UShareSDK已经为用户提供了主流的预定义平台,对这些平台已经做了优化和封装,比如:新浪,微信,QQ等。

详细的平台类型可以查看**UMSocialPlatformType**的枚举类型,方便用户直接导入后使用。

如果用户还需要定于自己自定义平台的话,首先就需要考虑用户自定义平台的取值,不能和预定义平台的类型重复。

用户自定义平台类型取值范围在UMSocialPlatformType_UserDefine_Begin到UMSocialPlatformType_UserDefine_End之间,不包括边界。

例如:

用户自定义平台的取值为: UMSocialPlatformType_UserDefine_Begin+1

平台基类UMSocialHandler的功能介绍

UMSocialHandler是实现每个平台的基础类,其功能如下:

  • 实现了最基础的平台协议 UMSocialPlatformProvider .

    请查看
    UMSocialPlatformProvider的协议内容 
    
    
  • 检查平台的前缀

    查找URLScheme前缀的功能
    -(BOOL)searchForURLSchemeWithPrefix:(NSString *)prefix; 
    
    
  • 缓存对应的appkey,appSecret,redirectURL

    
    -(void)setAppId:(NSString *)appID appSecret:(NSString *)secret url:(NSString *)url; 
    
    
  • 保存用户的授权信息。

    
    -(void)saveuid:(NSString *)uid openid:(NSString *)openid accesstoken:(NSString *)token refreshtoken:(NSString *)retoken expiration:(id )expiration;
    
    
  • 增加了平台的配置项用来限制分享内容(对超过的文本截断和超大图片的裁剪)

    请查看
    UMSocialHandlerConfig的class
    
    
    

创建自定义平台的类

用户需要继承UShareSDK的基类 UMSocialHandler ,该基类提供了基础框架功能,方便用户使用其功能。

用户自定义的类以UMSocialTemplateHandler为例子给用户示例:

用户继承UMSocialHandler类后,需要实现最基本的三个基础函数,

  • 单例的类函数,函数名如下:+ (UMSocialTemplateHandler *)defaultManager;
  • 重载load方法。
  • 当前平台对应的平台类型。

单例类的函数名必须要defaultManager,此规则必须注意

代码如下:

+(void)load
{
    [super load];
}

+(NSArray*) socialPlatformTypes
{
    return @[@(UMSocialPlatformType_UserDefine_Begin+1)];
}


+ (UMSocialTemplateHandler *)defaultManager
{
    static UMSocialTemplateHandler *instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        if (!instance) {
            instance = [[self alloc] init];
        }
    });
    return instance;
}

这些方法调用都是固定的,用户可以自行拷贝代码,替换成自己的类名(UMSocialTemplateHandler)和平台类型(UMSocialPlatformType_UserDefine_Begin+1)

实现自定义平台类的协议

接下来需要实现 UMSocialPlatformProvider 定义的协议 在UMSocialTemplateHandler类中重写协议如下:

  • 初始化sdk的appKey,appSecret,redirectURL。

     -(void)umSocial_setAppKey:(NSString*)appKey 
                withAppSecret:(NSString *)appSecret 
                withRedirectURL:(NSString *)redirectURL 

  • 删除缓存授权数据。
   -(void)umSocial_clearCacheData

  • 授权
    -(void)umSocial_AuthorizeWithUserInfo:(NSDictionary *)userInfo
                   withViewController:(UIViewController*)viewController
                withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler                

  • 取消授权
    -(void)umSocial_cancelAuthWithCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler

  • 分享
    -(void)umSocial_ShareWithObject:(UMSocialMessageObject *)messageObject withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler

  • 获得用户信息
    -(void)umSocial_RequestForUserProfileWithCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler

  • 获得从sso或者web端回调到本app的回调
    -(BOOL)umSocial_handleOpenURL:(NSURL *)url

  • 返回平台的版本
    -(NSString *)umSocial_PlatformSDKVersion

  • 当前平台app是否安装
    -(BOOL)umSocial_isInstall

  • 当前平台是否可以分享
    -(BOOL)umSocial_isSupport

  • 检查urlschema
    -(BOOL)checkUrlSchema

自定义平台的代码模板

只要按照上面的文档给出的步凑来实现就可以实现该用户自定义的平台类,UShare给出了用户自定义的类的模板类:

UMSocialTemplateHandler.h,

UMSocialTemplateHandler.m,

用户可以下载模板文件修改成自己的类名和平台类型,在对应的函数调用处实现自己的方法。 至此用户自定义的平台类已经实现完毕。

U-Share API说明

引用头文件

#import <UMSocialCore/UMSocialCore.h>

接口类UMSocialManager

获取类实例

[UMSocialManager defaultManager]

打开日志

/**
 *  打开日志
 *
 *  @param isOpen YES代表打开,No代表关闭
 */
- (void)openLog:(BOOL)isOpen;

设置平台的appkey

/**
 *  设置平台的appkey
 *
 *  @param platformType 平台类型 @see UMSocialPlatformType
 *  @param appKey       appKey 
 *  @param appSecret    appSecret (有些平台没有,可以不传)
 *  @param redirectURL  redirectURL (回调地址)
 */
- (BOOL)setPlaform:(UMSocialPlatformType)platformType
            appKey:(NSString *)appKey
         appSecret:(NSString *)appSecret
       redirectURL:(NSString *)redirectURL;


分享接口

/**
 *  分享接口
 *
 *  @param platformType @see UMSocialPlatformType
 *  @param shareObject
 *  @param currentViewController 用于弹出类似邮件分享、短信分享等这样的系统页面
 *  @param completion   回调
 *  @discuss currentViewController 只正对sms,email等平台需要传入viewcontroller的平台,其他不需要的平台可以传入nil
 */
- (void)shareToPlatform:(UMSocialPlatformType)platformType
          messageObject:(UMSocialMessageObject *)messageObject
  currentViewController:(id)currentViewController
             completion:(UMSocialRequestCompletionHandler)completion;

授权并获取用户信息接口

/**
 *  授权并获取用户信息
 *  @param currentViewController 用于弹出类似邮件分享、短信分享等这样的系统页面
 *  @param completion   回调
 */
- (void)getUserInfoWithPlatform:(UMSocialPlatformType)platformType
          currentViewController:(id)currentViewController
                     completion:(UMSocialRequestCompletionHandler)completion;

/**
 *  获得从sso或者web端回调到本app的回调
 *
 *  @param url 第三方sdk的打开本app的回调的url
 *
 *  @return 是否处理  YES代表处理成功,NO代表不处理
 */
-(BOOL)handleOpenURL:(NSURL *)url;

/**
 *  动态的增加用户自定义的PlatformProvider
 *
 *  @param userDefinePlatformProvider 用户自定义的userDefinePlatformProvider必须实现UMSocialPlatformProvider
 *  @param platformType               @see platformType platformType的有效范围在 (UMSocialPlatformType_UserDefine_Begin,UMSocialPlatformType_UserDefine_End)之间
 *
 *  @return YES代表返回成功,NO代表失败
 *  @disuss 在调用此函数前,必须先设置对应的平台的配置信息 @see - (BOOL)setPlaform:(UMSocialPlatformType)platformType appKey:(NSString *)appKey appSecret:(NSString *)appSecret redirectURL:(NSString *)redirectURL;
 */
-(BOOL)addAddUserDefinePlatformProvider:(id<UMSocialPlatformProvider>)userDefinePlatformProvider
             withUserDefinePlatformType:(UMSocialPlatformType)platformType;

取消授权接口

/**
 *  取消授权
 *
 *  @param platformType @see UMSocialPlatformType
 *  @param completion   回调
 */
- (void)cancelAuthWithPlatform:(UMSocialPlatformType)platformType
                    completion:(UMSocialRequestCompletionHandler)completion;


动态的删除PlatformProvider,不管是预定义还是用户自定义的

/**
 *  动态的删除不想显示的平台,不管是预定义还是用户自定义的
 *
 *  @param platformTypeArray 平台类型数组
 */
-(void) removePlatformProviderWithPlatformTypes:(NSArray *)platformTypeArray;
/**
 *  动态的删除PlatformProvider,不管是预定义还是用户自定义的
 *
 *  @param platformType @see UMSocialPlatformType
 */
-(void) removePlatformProviderWithPlatformType:(UMSocialPlatformType)platformType;

/**
 *  获得对应的平台类型platformType的PlatformProvider
 *
 *  @param platformType @see platformType
 *
 *  @return 返回继承UMSocialPlatformProvider的handle
 */
-(id<UMSocialPlatformProvider>)platformProviderWithPlatformType:(UMSocialPlatformType)platformType;

分享内容类

第三方SDK支持的分享数据类型

平台 文本 图片 图文 Web链接 视频链接 音乐链接 其他
微信好友 × gif表情及文件
微信朋友圈 × -
微信收藏 × 文件
新浪微博 -
QQ × -
QQ空间 × -
支付宝 × -
钉钉 × × × -
点点虫 × -
易信 × -
豆瓣 × × × -
人人 × × × -
腾讯微博 × × × -
有道云笔记 × × × 文件
印象笔记 文件
有道云笔记 -
Linkedin(领英) 图片链接必须为网络链接,不支持本地图片
Facebook -
FaceBookMessenger × -
Twitter -
Instagram × × × × × -
Kakao × × × -
Line × × × -
Tumblr × × × × × -
Pinterest × × × × × 图片必须为网络链接
WhatsApp × × × × -
Flickr × × × × × -
Google+ × -
Pocket × × 图片为网络链接
VKontakte × -
DropBox × 文件
短信 -
邮件 -

分享消息类UMSocialMessageObject

@interface UMSocialMessageObject : NSObject


/**
 * @param text 文本内容
 * @note 非纯文本分享文本
 */
@property (nonatomic, copy) NSString  *text;

/**
 * 分享的所媒体内容对象
 */
@property (nonatomic, strong) UMShareObject *shareObject;

/**
 * 其他相关参数,见相应平台说明
 */
@property (nonatomic, strong) NSDictionary *moreInfo;

+ (UMSocialMessageObject *)messageObject;

+ (UMSocialMessageObject *)messageObjectWithMediaObject:(id)mediaObject;


@end

基本分享类型UMShareObject

UMShareObject是所有多媒体内容的基类,多媒体内容包括图片、音乐、视频、网页等。纯文本分享不属于多媒体,只需要设置UMSocialMessageObject的text属性就可以。

@interface UMShareObject : NSObject
/**
 * 标题
 * @note 标题的长度依各个平台的要求而定
 */
@property (nonatomic, copy) NSString *title;

/**
 * 描述
 * @note 描述内容的长度依各个平台的要求而定
 */
@property (nonatomic, copy) NSString *descr;

/**
 * 缩略图 UIImage或者NSData类型或者NSString类型(图片url)
 */
@property (nonatomic, strong) id thumbImage;


/**
 * @param title 标题
 * @param descr 描述
 * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
 *
 */
+ (id)shareObjectWithTitle:(NSString *)title
                     descr:(NSString *)descr
                 thumImage:(id)thumImage;
+ (void)um_imageDataWithImage:(id)image completion:(void (^)(NSData *image))completion;
@end

分享图片类(参考父类UMShareObject)

@interface UMShareImageObject : UMShareObject

/** 图片内容 (可以是UIImage类对象,也可以是NSdata类对象,也可以是图片链接imageUrl NSString类对象)
 * @note 图片大小根据各个平台限制而定
 */
@property (nonatomic, retain) id shareImage;

@end

分享音乐数据结构(参考父类UMShareObject)

@interface UMShareMusicObject : UMShareObject

/** 音乐网页的url地址
 * @note 长度不能超过10K
 */
@property (nonatomic, retain) NSString *musicUrl;
/** 音乐lowband网页的url地址
 * @note 长度不能超过10K
 */
@property (nonatomic, retain) NSString *musicLowBandUrl;
/** 音乐数据url地址
 * @note 长度不能超过10K
 */
@property (nonatomic, retain) NSString *musicDataUrl;

/**音乐lowband数据url地址
 * @note 长度不能超过10K
 */
@property (nonatomic, retain) NSString *musicLowBandDataUrl;

@end

分享视频数据结构(参考父类UMShareObject)

@interface UMShareVideoObject : UMShareObject

/**
 视频网页的url

 @warning 不能为空且长度不能超过255
 */
@property (nonatomic, strong) NSString *videoUrl;

/**
 视频lowband网页的url

 @warning 长度不能超过255
 */
@property (nonatomic, strong) NSString *videoLowBandUrl;

/**
 视频数据流url

 @warning 长度不能超过255
 */
@property (nonatomic, strong) NSString *videoStreamUrl;

/**
 视频lowband数据流url

 @warning 长度不能超过255
 */
@property (nonatomic, strong) NSString *videoLowBandStreamUrl;

@end

分享网页数据结构(参考父类UMShareObject)

@interface UMShareWebpageObject : UMShareObject

/** 网页的url地址
 * @note 不能为空且长度不能超过10K
 */
@property (nonatomic, retain) NSString *webpageUrl;

@end

邮件分享数据结构(参考父类UMShareObject)

/*! @brief 分享消息中的邮件分享对象
 *
 * @see UMShareObject
 */
@interface UMShareEmailObject : UMShareObject

/**
 * 接收人
 */
@property (nonatomic, strong) NSArray *toRecipients;

/**
 * 抄送人
 */
@property (nonatomic, strong) NSArray *ccRecipients;

/**
 * 密送人
 */
@property (nonatomic, strong) NSArray *bccRecipients;

/**
 * 文本内容
 */
@property (nonatomic, copy) NSString *emailContent;

/**
 * 图片
 */
@property (nonatomic, strong) id emailImage;

/**
 * 文件(NSData)
 */
@property (nonatomic, strong) NSData *emailSendData;

/**
 * 文件格式
 */
@property (nonatomic, copy) NSString *fileType;

/**
 * 文件名
 */
@property (nonatomic, copy) NSString *fileName;

@end

短信分享数据结构(参考父类UMShareObject)

/*! @brief 分享消息中的短信分享对象
 *
 * @see UMSocialMessageObject
 */
@interface UMShareSmsObject : UMShareObject

/**
 * 接收人
 */
@property (nonatomic, strong) NSArray *recipients;

/**
 * 文本内容
 */
@property (nonatomic, copy) NSString *smsContent;

/**
 * 图片
 */
@property (nonatomic, strong) id smsImage;

/**
 * 文件数据(NSData)
 */
@property (nonatomic, strong) NSData *smsSendData;

/**
 * 文件格式
 */
@property (nonatomic, copy) NSString *fileType;

/**
 * 文件名称
 */
@property (nonatomic, copy) NSString *fileName;

/**
 * 文件地址url
 */
@property (nonatomic, copy) NSString *fileUrl;

@end

分享回调类

接口返回数据结构基类

@interface UMSocialResponse : NSObject

@property (nonatomic, copy) NSString  *uid;//用户id
@property (nonatomic, copy) NSString  *openid;//QQ,微信用户openid,其他平台没有
@property (nonatomic, copy) NSString  *refreshToken;//
@property (nonatomic, copy) NSDate    *expiration;//授权token(accessToken)过期时间
@property (nonatomic, copy) NSString  *accessToken;

@property (nonatomic, assign) UMSocialPlatformType  platformType;//对应的平台类型
/**
 * 第三方原始数据
 */
@property (nonatomic, strong) id  originalResponse;

@end

分享结果数据结构

@interface UMSocialShareResponse : UMSocialResponse

@property (nonatomic, copy) NSString  *message;//分享结果提示信息

+ (UMSocialShareResponse *)shareResponseWithMessage:(NSString *)message;

@end

授权结果数据结构

@interface UMSocialAuthResponse : UMSocialResponse

@end

获取用户信息结果数据结构

@interface UMSocialUserInfoResponse : UMSocialResponse
@property (nonatomic, copy) NSString  *name;//用户名
@property (nonatomic, copy) NSString  *iconurl;//头像地址
@property (nonatomic, copy) NSString  *gender;//性别(m表示男,w表示女)

@end

全局配置类

第三方平台参数限制相关配置

从6.0.3版本后,增加了对分享类型的限制,比如对文本的截断,对图片的裁剪,以便用户能够不用考虑平台的限制而成功的分享出去。 目前已经对新浪、微信、QQ及Facebook和Twitter平台做了分享参数处理。

配置类

其类别如下(请查看UMSocialHandler.h文件):

@interface UMSocialHandler (UMSocialLimit)
-(BOOL) checkText:(NSString*)text withTextLimit:(NSUInteger)textLimit;

-(BOOL) checkData:(NSData*)data withDataLimit:(NSUInteger)dataLimit;

-(NSString*)truncationText:(NSString*)text withTextLimit:(NSUInteger)textLimit;

-(NSData*)compressImageData:(NSData*)imageData withImageLimit:(NSUInteger)imageLimit;

@end


每个分享类型对应相关的分享配置类:


UMSocialShareTextObject ---> UMSocialShareTextObjectConfig

UMSocialShareImageObject ---> UMSocialShareImageObjectConfig

UMSocialShareMusicObject --->UMSocialShareMusicObjectConfig

UMSocialShareVideoObject ---> UMSocialShareVideoObjectConfig

UMSocialShareWebpageObject ---> UMSocialShareVideoObjectConfig

UMSocialShareEmailObject ---> UMSocialShareEmailObjectConfig

UMSocialShareSmsObject ---> UMSocialShareSmsObjectConfig

UMSocialShareEmotionObject ---> UMSocialShareEmotionObjectConfig

UMSocialShareFileObject ---> UMSocialShareFileObjectConfig


操作设置

增加了UMSocialGlobal的全局设置字段 :

thumblr_Tag thumblr平台需要作为标示的字段 tag

isTruncateShareText 对平台的分享文本的时候,做规定的截断,默认开启

简言之,开发者可以通过调用 [UMSocialGlobal shareInstance].isTruncateShareText = NO; 设置不进行文本截断等额外处理,但在文本过长时会收到第三方平台SDK返回的错误。

isUsingHttpsWhenShareContent 当前网络请求是否用https

  • 针对ios9系统以后强制使用https的网络请求,针对分享的网络图片都必须是https的网络图片(此为苹果官方要求)

  • 该函数默认开启https请求

  • 如果开启ios9的请求后,自动会过滤ios的http的请求,并返回错误

isClearCacheWhenGetUserInfo 是否清除缓存在获得用户资料的时候,此需求存在用户切换账号的时候,获得用户信息的时候用缓存的数据申请导致用户信息错误。

  • 默认设置为YES,代表请求用户的时候需要请求缓存

NO,代表不清除缓存,用缓存的数据请求用户数据

isUsingWaterMark 是否分享图片的时候,加入水印功能。如果开启的话,可以通过图片的水印配置类warterMarkConfig来配置水印。

目前水印只提供图片水印功能。 设置图片水印的配置类为:

  • UMSocialWarterMarkConfig 水印配置类,方便以后扩展其他的水印形式
  • UMSocialImageWarterMarkConfig 图片配置类

用户可以通过以下两种方式来配置用户自定义的水印

  • 如果用户用默认的参数,只想换水印图片的情况。

step1:

可以直接把路径 UMSocialSDKResources.bundle/UMSocialWaterMark/umsocial_defaultwatermark.png 下的图片换成自己的水印图片.

注意图片的名字和后缀必须一样

step2: 在分享前设置开启水印。

    [UMSocialGlobal shareInstance].isUsingWaterMark = YES;


  • 如果用户用自己自定义的参数和水印图片的情况。

step1: 在分享前设置开启水印。

    [UMSocialGlobal shareInstance].isUsingWaterMark = YES;


step2:创建配置水印类,并赋值给warterMarkConfig

    //创建图片水印配置类
    UMSocialImageWarterMarkConfig* imageWarterMarkConfig= [[UMSocialImageWarterMarkConfig alloc] init];
    imageWarterMarkConfig.warterMarkImage = [UIImage imageNamed:@"auth_icon"];
    imageWarterMarkConfig.warterMarkImageAlpha = 0.7;
    imageWarterMarkConfig.warterMarkImageScale = 0.4;
    imageWarterMarkConfig.paddingToHorizontalParentBorder = 20;
    imageWarterMarkConfig.paddingToVerticalParentBorder = 20;

    //创建水印配置类
    UMSocialWarterMarkConfig* warterMarkConfig = [[UMSocialWarterMarkConfig alloc] init];
    warterMarkConfig.stringAndImageWarterMarkPositon = UMSocialOnlyImageWarterMarkTopRight;
    [warterMarkConfig setUserDefinedImageWarterMarkConfig:imageWarterMarkConfig];

    //设置水印配置类
    [UMSocialGlobal shareInstance].warterMarkConfig = warterMarkConfig;


豆瓣、人人、腾讯微博授权编辑页面配置

#import <UMSocialCore/UMSocialPlatformConfig.h>

/**
 * 云端授权/分享编辑页面配置类
 * 云端授权/分享页面目前适用于腾讯微博、豆瓣、人人的授权和分享编辑页面的自定义配置
 */
@interface UMSocialCloudViewConfig : NSObject

/**
 授权页面
 */
@property (nonatomic, strong) NSString *authViewTitle;
@property (nonatomic, strong) UIColor *authViewTitleColor;
@property( nonatomic, strong) UIColor *authViewNavBarColor;
// button仅需改动title或image即可,touch事件内部触发
@property (nonatomic, strong) UIButton *authViewCloseButton;

@property (nonatomic, strong) NSString *editViewTitle;
@property (nonatomic, strong) UIColor *editViewTitleColor;
@property( nonatomic, strong) UIColor *editViewNavBarColor;
// button仅需改动title或image即可,touch事件内部触发
@property (nonatomic, strong) UIButton *editViewCloseButton;
@property (nonatomic, strong) UIButton *editViewShareButton;