跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

U-Share API

本文档介绍了U-Share所有的API接口用法

引用头文件

  1. #import <UMShare/UMShare.h>

接口类UMSocialManager

获取类实例

  1. [UMSocialManager defaultManager]

打开日志

  1. /**
  2. * 打开日志
  3. *
  4. * @param isOpen YES代表打开,No代表关闭
  5. */
  6. - (void)openLog:(BOOL)isOpen;

设置平台的appkey

  1. /**
  2. * 设置平台的appkey
  3. *
  4. * @param platformType 平台类型 @see UMSocialPlatformType
  5. * @param appKey appKey
  6. * @param appSecret appSecret (有些平台没有,可以不传)
  7. * @param redirectURL redirectURL (回调地址)
  8. */
  9. - (BOOL)setPlaform:(UMSocialPlatformType)platformType
  10. appKey:(NSString *)appKey
  11. appSecret:(NSString *)appSecret
  12. redirectURL:(NSString *)redirectURL;

分享接口

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

授权并获取用户信息接口

  1. /**
  2. * 授权并获取用户信息
  3. * @param currentViewController 用于弹出类似邮件分享、短信分享等这样的系统页面
  4. * @param completion 回调
  5. */
  6. - (void)getUserInfoWithPlatform:(UMSocialPlatformType)platformType
  7. currentViewController:(id)currentViewController
  8. completion:(UMSocialRequestCompletionHandler)completion;
  1. /**
  2. * 获得从sso或者web端回调到本app的回调
  3. *
  4. * @param url 第三方sdk的打开本app的回调的url
  5. *
  6. * @return 是否处理 YES代表处理成功,NO代表不处理
  7. */
  8. -(BOOL)handleOpenURL:(NSURL *)url;
  1. /**
  2. * 动态的增加用户自定义的PlatformProvider
  3. *
  4. * @param userDefinePlatformProvider 用户自定义的userDefinePlatformProvider必须实现UMSocialPlatformProvider
  5. * @param platformType @see platformType platformType的有效范围在 (UMSocialPlatformType_UserDefine_Begin,UMSocialPlatformType_UserDefine_End)之间
  6. *
  7. * @return YES代表返回成功,NO代表失败
  8. * @disuss 在调用此函数前,必须先设置对应的平台的配置信息 @see - (BOOL)setPlaform:(UMSocialPlatformType)platformType appKey:(NSString *)appKey appSecret:(NSString *)appSecret redirectURL:(NSString *)redirectURL;
  9. */
  10. -(BOOL)addAddUserDefinePlatformProvider:(id<UMSocialPlatformProvider>)userDefinePlatformProvider
  11. withUserDefinePlatformType:(UMSocialPlatformType)platformType;

取消授权接口

  1. /**
  2. * 取消授权
  3. *
  4. * @param platformType @see UMSocialPlatformType
  5. * @param completion 回调
  6. */
  7. - (void)cancelAuthWithPlatform:(UMSocialPlatformType)platformType
  8. completion:(UMSocialRequestCompletionHandler)completion;

判断平台是否安装

  1. /**
  2. * 平台是否安装
  3. *
  4. * @param platformType 平台类型 @see UMSocialPlatformType
  5. *
  6. * @return YES 代表安装,NO 代表未安装
  7. * @note 在判断QQ空间的App的时候,QQApi判断会出问题
  8. */
  9. -(BOOL) isInstall:(UMSocialPlatformType)platformType;

动态的删除PlatformProvider

不管是预定义还是用户自定义的

  1. /**
  2. * 动态的删除不想显示的平台,不管是预定义还是用户自定义的
  3. *
  4. * @param platformTypeArray 平台类型数组
  5. */
  6. -(void) removePlatformProviderWithPlatformTypes:(NSArray *)platformTypeArray;
  7. /**
  8. * 动态的删除PlatformProvider,不管是预定义还是用户自定义的
  9. *
  10. * @param platformType @see UMSocialPlatformType
  11. */
  12. -(void) removePlatformProviderWithPlatformType:(UMSocialPlatformType)platformType;
  13. /**
  14. * 获得对应的平台类型platformType的PlatformProvider
  15. *
  16. * @param platformType @see platformType
  17. *
  18. * @return 返回继承UMSocialPlatformProvider的handle
  19. */
  20. -(id<UMSocialPlatformProvider>)platformProviderWithPlatformType:(UMSocialPlatformType)platformType;

分享类数据结构

分享消息类UMSocialMessageObject

  1. @interface UMSocialMessageObject : NSObject
  2. /**
  3. * @param text 文本内容
  4. * @note 非纯文本分享文本
  5. */
  6. @property (nonatomic, copy) NSString *text;
  7. /**
  8. * 分享的所媒体内容对象
  9. */
  10. @property (nonatomic, strong) UMShareObject *shareObject;
  11. /**
  12. * 其他相关参数,见相应平台说明
  13. */
  14. @property (nonatomic, strong) NSDictionary *moreInfo;
  15. + (UMSocialMessageObject *)messageObject;
  16. + (UMSocialMessageObject *)messageObjectWithMediaObject:(id)mediaObject;
  17. @end

基本分享类型UMShareObject


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

  1. @interface UMShareObject : NSObject
  2. /**
  3. * 标题
  4. * @note 标题的长度依各个平台的要求而定
  5. */
  6. @property (nonatomic, copy) NSString *title;
  7. /**
  8. * 描述
  9. * @note 描述内容的长度依各个平台的要求而定
  10. */
  11. @property (nonatomic, copy) NSString *descr;
  12. /**
  13. * 缩略图 UIImage或者NSData类型或者NSString类型(图片url)
  14. */
  15. @property (nonatomic, strong) id thumbImage;
  16. /**
  17. * @param title 标题
  18. * @param descr 描述
  19. * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
  20. *
  21. */
  22. + (id)shareObjectWithTitle:(NSString *)title
  23. descr:(NSString *)descr
  24. thumImage:(id)thumImage;
  25. + (void)um_imageDataWithImage:(id)image completion:(void (^)(NSData *image))completion;
  26. @end

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

  1. @interface UMShareImageObject : UMShareObject
  2. /** 图片内容 (可以是UIImage类对象,也可以是NSdata类对象,也可以是图片链接imageUrl NSString类对象)
  3. * @note 图片大小根据各个平台限制而定
  4. */
  5. @property (nonatomic, retain) id shareImage;
  6. @end

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

  1. @interface UMShareMusicObject : UMShareObject
  2. /** 音乐网页的url地址
  3. * @note 长度不能超过10K
  4. */
  5. @property (nonatomic, retain) NSString *musicUrl;
  6. /** 音乐lowband网页的url地址
  7. * @note 长度不能超过10K
  8. */
  9. @property (nonatomic, retain) NSString *musicLowBandUrl;
  10. /** 音乐数据url地址
  11. * @note 长度不能超过10K
  12. */
  13. @property (nonatomic, retain) NSString *musicDataUrl;
  14. /**音乐lowband数据url地址
  15. * @note 长度不能超过10K
  16. */
  17. @property (nonatomic, retain) NSString *musicLowBandDataUrl;
  18. @end

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

  1. @interface UMShareVideoObject : UMShareObject
  2. /**
  3. 视频网页的url
  4. @warning 不能为空且长度不能超过255
  5. */
  6. @property (nonatomic, strong) NSString *videoUrl;
  7. /**
  8. 视频lowband网页的url
  9. @warning 长度不能超过255
  10. */
  11. @property (nonatomic, strong) NSString *videoLowBandUrl;
  12. /**
  13. 视频数据流url
  14. @warning 长度不能超过255
  15. */
  16. @property (nonatomic, strong) NSString *videoStreamUrl;
  17. /**
  18. 视频lowband数据流url
  19. @warning 长度不能超过255
  20. */
  21. @property (nonatomic, strong) NSString *videoLowBandStreamUrl;
  22. @end

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

  1. @interface UMShareWebpageObject : UMShareObject
  2. /** 网页的url地址
  3. * @note 不能为空且长度不能超过10K
  4. */
  5. @property (nonatomic, retain) NSString *webpageUrl;
  6. @end

分享微信/QQ小程序(参考父类UMShareObject)

  1. @interface WXMiniProgramObject : NSObject
  2. /*! @brief WXMiniProgramObject对象
  3. *
  4. * @note 返回的WXMiniProgramObject对象是自动释放的
  5. */
  6. +(WXMiniProgramObject *) object;
  7. @property (nonatomic, strong) NSString *webpageUrl; //低版本网页链接
  8. @property (nonatomic, strong) NSString *userName; //小程序username
  9. @property (nonatomic, strong) NSString *path; //小程序页面的路径
  10. @end

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

  1. /*! @brief 分享消息中的邮件分享对象
  2. *
  3. * @see UMShareObject
  4. */
  5. @interface UMShareEmailObject : UMShareObject
  6. /**
  7. * 接收人
  8. */
  9. @property (nonatomic, strong) NSArray *toRecipients;
  10. /**
  11. * 抄送人
  12. */
  13. @property (nonatomic, strong) NSArray *ccRecipients;
  14. /**
  15. * 密送人
  16. */
  17. @property (nonatomic, strong) NSArray *bccRecipients;
  18. /**
  19. * 文本内容
  20. */
  21. @property (nonatomic, copy) NSString *emailContent;
  22. /**
  23. * 图片
  24. */
  25. @property (nonatomic, strong) id emailImage;
  26. /**
  27. * 文件(NSData)
  28. */
  29. @property (nonatomic, strong) NSData *emailSendData;
  30. /**
  31. * 文件格式
  32. */
  33. @property (nonatomic, copy) NSString *fileType;
  34. /**
  35. * 文件名
  36. */
  37. @property (nonatomic, copy) NSString *fileName;
  38. @end

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

  1. /*! @brief 分享消息中的短信分享对象
  2. *
  3. * @see UMSocialMessageObject
  4. */
  5. @interface UMShareSmsObject : UMShareObject
  6. /**
  7. * 接收人
  8. */
  9. @property (nonatomic, strong) NSArray *recipients;
  10. /**
  11. * 文本内容
  12. */
  13. @property (nonatomic, copy) NSString *smsContent;
  14. /**
  15. * 图片
  16. */
  17. @property (nonatomic, strong) id smsImage;
  18. /**
  19. * 文件数据(NSData)
  20. */
  21. @property (nonatomic, strong) NSData *smsSendData;
  22. /**
  23. * 文件格式
  24. */
  25. @property (nonatomic, copy) NSString *fileType;
  26. /**
  27. * 文件名称
  28. */
  29. @property (nonatomic, copy) NSString *fileName;
  30. /**
  31. * 文件地址url
  32. */
  33. @property (nonatomic, copy) NSString *fileUrl;
  34. @end

分享回调类

接口返回数据结构基类

  1. @interface UMSocialResponse : NSObject
  2. @property (nonatomic, copy) NSString *uid;//用户id
  3. @property (nonatomic, copy) NSString *openid;//QQ,微信用户openid,其他平台没有
  4. @property (nonatomic, copy) NSString *refreshToken;//
  5. @property (nonatomic, copy) NSDate *expiration;//授权token(accessToken)过期时间
  6. @property (nonatomic, copy) NSString *accessToken;
  7. @property (nonatomic, copy) NSString *unionId;
  8. /**
  9. usid 兼容U-Share 4.x/5.x 版本,与4/5版本数值相同
  10. 即,对应微信平台:openId,QQ平台openId,其他平台不变
  11. */
  12. @property (nonatomic, copy) NSString *usid;
  13. @property (nonatomic, assign) UMSocialPlatformType platformType;//对应的平台类型
  14. /**
  15. * 第三方原始数据
  16. */
  17. @property (nonatomic, strong) id originalResponse;
  18. @end

分享结果数据结构

  1. @interface UMSocialShareResponse : UMSocialResponse
  2. @property (nonatomic, copy) NSString *message;//分享结果提示信息
  3. + (UMSocialShareResponse *)shareResponseWithMessage:(NSString *)message;
  4. @end

授权结果数据结构

  1. @interface UMSocialAuthResponse : UMSocialResponse
  2. @end

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

  1. @interface UMSocialUserInfoResponse : UMSocialResponse
  2. /**
  3. 第三方平台昵称
  4. */
  5. @property (nonatomic, copy) NSString *name;
  6. /**
  7. 第三方平台头像地址
  8. */
  9. @property (nonatomic, copy) NSString *iconurl;
  10. /**
  11. 通用平台性别属性
  12. QQ、微信、微博返回 "男", "女"
  13. Facebook返回 "male", "female"
  14. */
  15. @property (nonatomic, copy) NSString *unionGender;
  16. @end

全局配置类



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

配置类


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

  1. @interface UMSocialHandler (UMSocialLimit)
  2. -(BOOL) checkText:(NSString*)text withTextLimit:(NSUInteger)textLimit;
  3. -(BOOL) checkData:(NSData*)data withDataLimit:(NSUInteger)dataLimit;
  4. -(NSString*)truncationText:(NSString*)text withTextLimit:(NSUInteger)textLimit;
  5. -(NSData*)compressImageData:(NSData*)imageData withImageLimit:(NSUInteger)imageLimit;
  6. @end

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

  1. UMSocialShareTextObject ---> UMSocialShareTextObjectConfig
  2. UMSocialShareImageObject ---> UMSocialShareImageObjectConfig
  3. UMSocialShareMusicObject --->UMSocialShareMusicObjectConfig
  4. UMSocialShareVideoObject ---> UMSocialShareVideoObjectConfig
  5. UMSocialShareWebpageObject ---> UMSocialShareVideoObjectConfig
  6. UMSocialShareEmailObject ---> UMSocialShareEmailObjectConfig
  7. UMSocialShareSmsObject ---> UMSocialShareSmsObjectConfig
  8. UMSocialShareEmotionObject ---> UMSocialShareEmotionObjectConfig
  9. 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:
在分享前设置开启水印。

  1. [UMSocialGlobal shareInstance].isUsingWaterMark = YES;
  • 如果用户用自己自定义的参数和水印图片的情况。


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

  1. [UMSocialGlobal shareInstance].isUsingWaterMark = YES;


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

  1. //创建图片水印配置类
  2. UMSocialImageWarterMarkConfig* imageWarterMarkConfig= [[UMSocialImageWarterMarkConfig alloc] init];
  3. imageWarterMarkConfig.warterMarkImage = [UIImage imageNamed:@"auth_icon"];
  4. imageWarterMarkConfig.warterMarkImageAlpha = 0.7;
  5. imageWarterMarkConfig.warterMarkImageScale = 0.4;
  6. imageWarterMarkConfig.paddingToHorizontalParentBorder = 20;
  7. imageWarterMarkConfig.paddingToVerticalParentBorder = 20;
  8. //创建水印配置类
  9. UMSocialWarterMarkConfig* warterMarkConfig = [[UMSocialWarterMarkConfig alloc] init];
  10. warterMarkConfig.stringAndImageWarterMarkPositon = UMSocialOnlyImageWarterMarkTopRight;
  11. [warterMarkConfig setUserDefinedImageWarterMarkConfig:imageWarterMarkConfig];
  12. //设置水印配置类
  13. [UMSocialGlobal shareInstance].warterMarkConfig = warterMarkConfig;