测试已测试 | ✗ |
lang语言 | Obj-CObjective C |
许可 | MIT |
发布最新发布 | 2016年11月 |
由Fiber维护。
依赖 | |
AFNetworking | ~> 3.0 |
WeiboSDK | >= 0 |
GreedTencentOpenAPI | = 2.9.5 |
WeChat_SDK | >= 0 |
pod 'CWShare'
CWShare是一个集成的国内分享平台的Objective-C版本的SDK。代码开源,可以自定义修改弹框视图。 CWShare封装了以下平台,支持版本iOS7.0+
仅适用于需要第三方登录和基本分享功能的开发,以降低用户注册账号的门槛。在完成第三方登录授权后,自动获取用户个人信息,用于填充用户个人资料。
由于示例App中的分享AppKey是刚申请的测试应用,不支持使用测试账号以外的其他账号授权,所以在测试示例时,请使用自己的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、微信。具体可以参考示例配置。
iOS9及以上版本检查第三方权限时,需要在plist中添加以下代码,将各平台App加入白名单,具体参考示例配置。
<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(@"新浪微博分享成功");
}
}
...
更多使用方式可以参考示例。
增加Swift版本
QQ 1749520
如果你有任何问题可以联系作者,欢迎提出意见。