在iOS app 開發(fā)中經(jīng)常會有分享的需求,而一般的app分享的平臺基本就是那么幾個QQ擂红、微信、微博围小;實現(xiàn)的方式有那么幾種:
1昵骤、通過各平臺提供的SDK自行封裝;
2肯适、使用第三方集成好的SDK(ShareSdk变秦、友盟分享);
這兩種方式在分享需求比較復(fù)雜的情況下框舔,是一個好的選擇蹦玫,但很多時候只是簡單的分享一下app赎婚,圖文等等;自行封裝成本較高樱溉,需要花費時間看SDK文檔挣输;ShareSdk和友盟分享需要導(dǎo)入很多不必要的文件,還需要在其平臺注冊才能使用饺窿。所以歧焦,如果你只是簡單的分享,我推薦一款開源的分享框架SZShare肚医。(github:一款使用簡單小巧的分享控件)绢馍。
一、介紹
SZShare 是參考OpenShare及ShareSdk寫的肠套,內(nèi)部實現(xiàn)是用的OpenShare方式舰涌,不需要分享平臺的SDK,整個文件不到120k你稚;同時方便擴展及自定義瓷耙。
二、使用?
1.注冊 在didFinishLaunchingWithOptions:中添加以下代碼
[SZShare registerPlatforms:@[@(SZPlatformTypeQQ),
@(SZPlatformTypeWeChat),
@(SZPlatformTypeSinaWeibo)]
onConfiguration:^(SZPlatformType platform) {
switch (platform) {
case SZPlatformTypeQQ:
[SZShare connectQQWithAppId:kAppIdQQ];
break;
case SZPlatformTypeSinaWeibo:
[SZShare connectWeiboWithAppKey:kAppKeyWeibo];
break;
case SZPlatformTypeWeChat:
[SZShare connectWeChatWithAppId:kAppIdWeChat];
break;
default:
break;
}
}];
*注刁赖、需要在各分享平臺注冊自己的App拿到appKey 2.分享回調(diào)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
//第二步:添加回調(diào)
if ([SZShare handleOpenURL:url]) {
return YES;
}
//這里可以寫上其他OpenShare不支持的客戶端的回調(diào)搁痛,比如支付寶等。
return YES;
}
3.分享相關(guān)信息
SZShareMessage *message = [[SZShareMessage alloc] init];
//單純分享圖片 則只需要這兩個參數(shù)
message.title = @"分享標(biāo)題";
message.image = @"分享圖片,需要傳入UIimage對象";
//其他分享需要加上這兩個
message.desc = @"分享描述";
message.link = @"分享鏈接";
[SZShareSheet shareToPlatformsWithMessage:message onShareStateChanged:^(SZShareState state) {
switch (state) {
case SZShareStateWithOutSupportPlatform:
NSLog(@"no platforms has exist!");
break;
case SZShareStateSuccess:
break;
case SZShareStateFailure:
break;
case SZShareStateCancel:
break;
default:
break;
}
}];
***說明:目前只實現(xiàn)了QQ好友宇弛,QQ空間鸡典,微信好友,微信朋友圈枪芒,新浪微博(僅限這些平臺)(僅限分享純圖片和鏈接文字兩種類型)