友盟集成(七) —— UShare模块之进阶说明之自定义平台(四)

版本记录

版本号 时间
V1.0 2018.04.05

前言

相信很多人用过友盟,包括友盟的第三方登录、分享以及统计。这里我们就分几个模块进行详细的说明 —— 移动统计(U - App)、网站统计(U - Web)、消息推送(U - Push)、社会化分享(U - Share)、游戏统计(U - Game)、互联网运营数据服务(Dplus) - 多维度、一站式、精细化数据管理服务。感兴趣的可以看上面几篇。
1. 友盟集成(一) —— UShare模块之快速集成(一)
2. 友盟集成(二) —— UShare模块之快速集成(二)
3. 友盟集成(三) —— UShare模块之第三方登录(一)
4. 友盟集成(四) —— UShare模块之进阶说明之第三方平台SDK说明(一)
5. 友盟集成(五) —— UShare模块之进阶说明之分享到第三方平台(二)
6. 友盟集成(六) —— UShare模块之进阶说明之分享面板UI(三)

自定义平台

1. 自定义的平台类型的选取

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

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

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

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

2. 平台基类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

3. 创建自定义平台的类

用户需要继承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)

4. 实现自定义平台类的协议

接下来需要实现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

5. 自定义平台的代码模板

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

UMSocialTemplateHandler.h,
UMSocialTemplateHandler.m,

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

后记

本篇主要介绍了UShare模块之进阶说明之自定义平台,感兴趣的给个赞或者关注~~~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容