美文网首页iOS学习笔记OS
iOS-友盟SDK6.0,自定义分享(复制链接)

iOS-友盟SDK6.0,自定义分享(复制链接)

作者: 知德 | 来源:发表于2016-11-10 14:49 被阅读1528次

由于友盟分享SDK6.0整体重构,6.0以下SDK中的接口大都不能够使用了,以至于自定义分享功能不能使用原接口。
在网上也搜索了好久,只有一个人提出了这个问题,但是没有人回复,泪奔。。。
研究了半天,也崩溃了半天,最后,我成功实现原先可用的 复制链接 功能。

如果是 友盟SDK6.1,请转到此处

话不多说,直接上代码:

在 SDK 路径
UMSocalSDK -- UMSocialCore.framework -- Headers -- UMSocialPlatformConfig.h 
文件中定义你需要的平台类型
// 用户自定义的平台
UMSocialPlatformType_UserDefine_Begin = 1000,
// 注:1000 < xxxx < 200
UMSocialPlatformType_Link = xxxx,
UMSocialPlatformType_UserDefine_End = 2000,

自定义分享平台类(重要的是遵循 UMSocialPlatformProvider 协议)

// ZXCustomSharePlatform.h
#import <UMSocialCore/UMSocialCore.h>

@interface ZXCustomSharePlatform : UMSocialPlatformConfig <UMSocialPlatformProvider>

@end

实现(全部方法都得有,但是挑几个必须实现的写)

// ZXCustomSharePlatform.m
#import "ZXCustomSharePlatform.h"
@implementation ZXCustomSharePlatform

+ (NSString *)platformNameWithPlatformType:(UMSocialPlatformType)platformType {
    return @"复制链接";
}

-(void)umSocial_ShareWithObject:(UMSocialMessageObject *)object
          withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler {
    UMShareWebpageObject *webObjc = object.shareObject;
    UIPasteboard *pastboad = [UIPasteboard generalPasteboard];
    pastboad.string = webObjc.webpageUrl;
    [ZXCusAlert alertWithTitles:@[@"链接复制成功"]];
}

注:因为我分享的是网页类型,所以 object.shareObject 的类型是 UMShareWebpageObject

-(BOOL)umSocial_handleOpenURL:(NSURL *)url {
    return YES;
}

-(UMSocialPlatformFeature)umSocial_SupportedFeatures {
    return UMSocialPlatformFeature_None;
}

-(NSString *)umSocial_PlatformSDKVersion {
    return [UMSocialGlobal umSocialSDKVersion];
}

-(BOOL)checkUrlSchema {
    return YES;
}

-(BOOL)umSocial_isInstall {
    return YES;
}

-(BOOL)umSocial_isSupport {
    return YES;
}

@end
在 SDK 路径
UMSocialUI -- UMShareMenuSelectionView.m
文件中的
- dictWithPlatformName:
方法中,添加自定义平台的图片名称和平台名称
注:必须向 UMSocialUI -- Resource -- UMSocialSDKResources.bundle -- SnsPlatform 
   文件夹中添加平台显示的按钮图片(我添加的图片名称为icon_link)
case UMSocialPlatformType_Link:
    imageName = @"icon_link";
    platformName = UMLocalizedString(@"copyLink",@"复制链接");
    break;

最后,在 Appdelegate.m 文件中 其他分享平台代码下方 添加自定义平台代码:

ZXCustomSharePlatform *cusPlatform = [[ZXCustomSharePlatform alloc] init];
[[UMSocialManager defaultManager] addAddUserDefinePlatformProvider:cusPlatform withUserDefinePlatformType:UMSocialPlatformType_Link];

相关文章

网友评论

  • 知德:友盟SDK6.1.0 的,请转到 http://www.jianshu.com/p/1c765791b506
    8e16217a6824:@活上去 楼主,有第三方登录的么,为什么我拿不到登录的回调
    知德:哈哈,多谢多谢,共同努力,共同进步 :smiley:
    8e16217a6824:@活上去 我只能说真的给力,必须给你点赞
  • 8e16217a6824:UMSocialUI -- UMShareMenuSelectionView.m我没有找到呢
  • 翻炒吧蛋滚饭:楼主你好,我想问下,我下载的友盟SDK,看不到.m文件,怎么版呢?你用的哪个版本呢?
    翻炒吧蛋滚饭:@Mr_pipi :sob: 没啊
    8e16217a6824:@翻炒吧蛋滚饭 您好,解决了吗
    翻炒吧蛋滚饭:@翻炒吧蛋滚饭 看了下,6.1.0版本将ui的.m打到静态库里了,6.0.1版本还是在外面的 :sob:
  • 讨厌下雨的鱼:case UMSocialPlatformType_Link:
    imageName = @"icon_link";
    platformName = UMLocalizedString(@"copyLink",@"复制链接");
    break;
    请问这里如何设置自定义的标题和图片
    知德: 其实就在代码的上面写道了 :stuck_out_tongue_winking_eye:
    讨厌下雨的鱼:@这位壮士不太冷 找到了,谢谢

本文标题:iOS-友盟SDK6.0,自定义分享(复制链接)

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