由于友盟分享SDK6.0整體重構(gòu),6.0以下SDK中的接口大都不能夠使用了返十,以至于自定義分享功能不能使用原接口妥泉。
在網(wǎng)上也搜索了好久,只有一個(gè)人提出了這個(gè)問(wèn)題洞坑,但是沒(méi)有人回復(fù)盲链,淚奔。迟杂。匈仗。
研究了半天,也崩潰了半天逢慌,最后悠轩,我成功實(shí)現(xiàn)原先可用的 復(fù)制鏈接 功能。
如果是 友盟SDK6.1攻泼,請(qǐng)轉(zhuǎn)到此處
話不多說(shuō)火架,直接上代碼:
在 SDK 路徑
UMSocalSDK -- UMSocialCore.framework -- Headers -- UMSocialPlatformConfig.h
文件中定義你需要的平臺(tái)類型
// 用戶自定義的平臺(tái)
UMSocialPlatformType_UserDefine_Begin = 1000,
// 注:1000 < xxxx < 200
UMSocialPlatformType_Link = xxxx,
UMSocialPlatformType_UserDefine_End = 2000,
自定義分享平臺(tái)類(重要的是遵循 UMSocialPlatformProvider 協(xié)議)
// ZXCustomSharePlatform.h
#import <UMSocialCore/UMSocialCore.h>
@interface ZXCustomSharePlatform : UMSocialPlatformConfig <UMSocialPlatformProvider>
@end
實(shí)現(xiàn)(全部方法都得有,但是挑幾個(gè)必須實(shí)現(xiàn)的寫(xiě))
// ZXCustomSharePlatform.m
#import "ZXCustomSharePlatform.h"
@implementation ZXCustomSharePlatform
+ (NSString *)platformNameWithPlatformType:(UMSocialPlatformType)platformType {
return @"復(fù)制鏈接";
}
-(void)umSocial_ShareWithObject:(UMSocialMessageObject *)object
withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler {
UMShareWebpageObject *webObjc = object.shareObject;
UIPasteboard *pastboad = [UIPasteboard generalPasteboard];
pastboad.string = webObjc.webpageUrl;
[ZXCusAlert alertWithTitles:@[@"鏈接復(fù)制成功"]];
}
注:因?yàn)槲曳窒淼氖蔷W(wǎng)頁(yè)類型忙菠,所以 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:
方法中何鸡,添加自定義平臺(tái)的圖片名稱和平臺(tái)名稱
注:必須向 UMSocialUI -- Resource -- UMSocialSDKResources.bundle -- SnsPlatform
文件夾中添加平臺(tái)顯示的按鈕圖片(我添加的圖片名稱為icon_link)
case UMSocialPlatformType_Link:
imageName = @"icon_link";
platformName = UMLocalizedString(@"copyLink",@"復(fù)制鏈接");
break;
最后,在 Appdelegate.m 文件中 其他分享平臺(tái)代碼下方 添加自定義平臺(tái)代碼:
ZXCustomSharePlatform *cusPlatform = [[ZXCustomSharePlatform alloc] init];
[[UMSocialManager defaultManager] addAddUserDefinePlatformProvider:cusPlatform withUserDefinePlatformType:UMSocialPlatformType_Link];