在iOS app 开发中经常会有分享的需求,而一般的app分享的平台基本就是那么几个QQ、微信、微博;实现的方式有那么几种:
1、通过各平台提供的SDK自行封装;
2、使用第三方集成好的SDK(ShareSdk、友盟分享);
这两种方式在分享需求比较复杂的情况下,是一个好的选择,但很多时候只是简单的分享一下app,图文等等;自行封装成本较高,需要花费时间看SDK文档;ShareSdk和友盟分享需要导入很多不必要的文件,还需要在其平台注册才能使用。所以,如果你只是简单的分享,我推荐一款开源的分享框架SZShare。(github:一款使用简单小巧的分享控件)。
一、介绍
SZShare 是参考OpenShare及ShareSdk写的,内部实现是用的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.分享回调
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
//第二步:添加回调
if ([SZShare handleOpenURL:url]) {
return YES;
}
//这里可以写上其他OpenShare不支持的客户端的回调,比如支付宝等。
return YES;
}
3.分享相关信息
SZShareMessage *message = [[SZShareMessage alloc] init];
//单纯分享图片 则只需要这两个参数
message.title = @"分享标题";
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;
}
}];
***说明:目前只实现了QQ好友,QQ空间,微信好友,微信朋友圈,新浪微博(仅限这些平台)(仅限分享纯图片和链接文字两种类型)