CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.
TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Nov 2016 |
Maintained by Fiber.
Depends on: | |
AFNetworking | ~> 3.0 |
WeiboSDK | >= 0 |
GreedTencentOpenAPI | = 2.9.5 |
WeChat_SDK | >= 0 |
pod 'CWShare'
CWShare是一个集成的国内分享平台的Objective-C版本的SDK。代码开源,可以自定义修改弹框视图。
CWShare封装了以下平台,支持版本iOS7.0+
:
仅使用第三方登录和简单分享,降低用户注册账号的门槛。 使用第三方登录授权后自动获取用户个人信息,用来填充用户个人资料。
由于Demo里的分享AppKey都是刚申请的测试应用,不支持测试账号以外的其他账号授权,所以在测试Demo的时候,请使用自己的AppKey(同理URL Schemes也要相应修改),否则测试流程会出错。测试需要在真机上测试,因为需要跳转到第三方平台App授权,所以需要修改项目的证书配置。
CWShare已经发布到Cocoapods,直接编辑你项目的Podfile
文件,加入如下pod。
platform :ios, 'x.0'
target 'project' do
...
pod 'CWShare'
...
end
由于使用SSO授权,使用URLScheme技术,所以项目配置文件需做如下配置。选中项目的TARGETS
,选择Info
选项,找到最下面的URL Types
,分别添加:新浪微博、腾讯QQ、微信。具体可以参考Demo里的配置。
iOS9+判断是否安装第三方权限,需要在plist里加入如下代码,将各平台App加入白名单,具体参考Demo配置。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>mqq</string>
<string>weixin</string>
<string>sinaweibo</string>
<string>sinaweibohd</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
</array>
配置SSO授权最后一步,在项目的AppDelegate.h文件里按如下方式填充方法,以便保证回调正确:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
//微信注册
[[CWShare shareObject] registerWechatAppID:WeChatAppID appSecret:WeChatAppSecret];
//微博注册
[[CWShare shareObject] registerSinaAppKey:SinaAppKey redirectURL:SinaRedirectURL];
//腾讯QQ注册
[[CWShare shareObject] registerTencentAppKey:TencentAppKey];
return YES;
}
//NS_DEPRECATED_IOS(4_2, 9_0)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
...
[CWShare handleOpenUrl:url];
return YES;
}
//NS_AVAILABLE_IOS(9_0)
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
...
[CWShare handleOpenUrl:url];
return YES;
}
下面是使用CWShare的方法,非常简单。
使用的时候先在你要调用CWShare的.h头文件里申明要实现CWShareDelegate代理。
#import <UIKit/UIKit.h>
#import "CWShare.h"
@interface ViewController : UIViewController <CWShareDelegate>
@end
在分享的时候你需要设置它的回调代理,调用如下代码。
#import "ViewController.h"
...
- (IBAction)sinaShareContent:(id)sender
{
[[CWShare shareObject] setDelegate:self];
[[CWShare shareObject] sinaShareWithContent:@"test cwshare"];
}
...
在你的类里实现如下代理,可以处理分享之后的操作。
#import "ViewController.h"
...
- (void)shareFailForShareType:(CWShareType)shareType
{
if (shareType == CWShareTypeSina) {
NSLog(@"新浪微博分享失败");
}
}
- (void)shareFinishForShareType:(CWShareType)shareType
{
if (shareType == CWShareTypeSina) {
NSLog(@"新浪微博分享成功");
}
}
...
更多使用方式可以参考Demo。
增加Swift版本
QQ 1749520
如果你有任何问题可以联系作者,欢迎提出意见。