最近项目中用到了分享这一功能,很自然的就想到了shareSDK,官方下载下来发现好大,70+M,不过看着官方文档还算详尽,算了,就它了。
和友盟差不多,前期的准备工作都需要去注册应用,在对应开放平台进行注册,获取key Secret,不要怕麻烦,照着各大平台要求一步步做下去吧,我光注册就花费了半上午,除了微信,需要的注册信息都好多,新浪微博注册app有个截图展示,千万要有一张和新浪微博沾边的,否则审核时会被拒掉的,他并没有告诉你,这有点小坑,微信 QQ审核比较快,微博真的得一天。
代码端:和官网文档要求一样,直接扒下来
[ShareSDK registerApp:@"cad590af85fc"
activePlatforms:@[@(SSDKPlatformTypeSinaWeibo),
@(SSDKPlatformSubTypeWechatSession),
@(SSDKPlatformSubTypeWechatTimeline),
@(SSDKPlatformSubTypeQZone)]
onImport:^(SSDKPlatformType platformType){
switch (platformType) {
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
case SSDKPlatformTypeQQ:
[ShareSDKConnector connectQQ:[QQApiInterface class]
tencentOAuthClass:[TencentOAuth class]];
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]
delegate:self];
break;
default:
break;
}
}
onConfiguration:^(SSDKPlatformType platformType,
NSMutableDictionary *appInfo) {
switch (platformType) {
case SSDKPlatformTypeSinaWeibo: {//新浪微博
[appInfo SSDKSetupSinaWeiboByAppKey:@"956106252"
appSecret:@"1f964c7f46b8e684980f424f71c33ed0"
redirectUri:@"http://www.chinaedu.com/"
authType:SSDKAuthTypeBoth];
break;
}
case SSDKPlatformTypeQQ: {//QQ空间
[appInfo SSDKSetupQQByAppId:@"1104940563"
appKey:@"B9YP89rydsThPlXp"
authType:SSDKAuthTypeBoth];
break;
}
case SSDKPlatformTypeWechat:{
[appInfo SSDKSetupWeChatByAppId:@"wx9e406ee74642f289"
appSecret:@"782b8f4669c0c9c5dc6f0121143db699"];
break;
}
default: {
break;
}
}
}];
注意几个坑:1.微信一定不要按简洁版的写,一定规规矩矩写协议,签代理。否则真的会不好用
2.新浪微博的redirectUri一定要和开放平台的回调网址一致,否则授权永远失败
3.除了第二个参数写成自己要分享到的地方,三四参数不要自作聪明也写成空间,微信好友什么的,也会报错
这些都写好了,开始一些设置targets-info-url types 一定要写对应的URL Schemes,微信直接吧key复制就行,微博前+wb,QQ的一定要大写QQ+key(换成16进制)
继续 targets-build setting-other linker添加-all_load -Objc
都加上吧,谁知道哪个不对了九crash了。
分享的实现就简单多了,下载SDK时候把Demo也下了吧,里面现成的,直接复制就OK了,想要什么样就有什么样的