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

由于友盟分享SDK6整体重构,6.0以下SDK中的接口大都不能够使用了,以至于自定义分享功能不能使用原接口。

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

在 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 

@interface ZXCustomSharePlatform : UMSocialHandler 

@end

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

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

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

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

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

+ (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
在UMSocialUI--UMSocialSDKResources.bundle路径下
1.UMSocialPlatformTheme--default中,把umsocial_default.png替换为自己定义平台的图片
2.zh-Hans.iproj--UMSocialLocalizable.strings中,将umsocial_default的值替换为自定义平台名称,如“复制链接”

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

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

你可能感兴趣的:(iOS-友盟SDK6.1,自定义分享(复制链接))