简介: 实现 Sina WeChat QQ 登录和分享功能
SocialSDK | QQ(SDK) | Sina(SDK) | WeChat(SDK) |
---|---|---|---|
0.0.3 | 3.1.3 | 3.1.4 | 1.7.5 |
0.0.4 | 3.2.1 | 3.1.4 | 1.7.7 |
0.0.5 | 3.3.3 | 3.1.4 | 1.8.2 |
平台 | 分享 | 登录 | 支付 |
---|---|---|---|
Sina | √ | √ | × |
√ | √ | × | |
√ | √ | × |
渠道 | 纯文本 | 单图 | 普通链接 | 音频链接 | 视频链接 |
---|---|---|---|---|---|
Sina | √ | √ | √ | √ | √ |
√ | √ | √ | √ | √ | |
Qzone | √ | √ | √ | √ | √ |
WechatSession | √ | √ | √ | √ | √ |
WechatTimeLine | √ | √ | √ | √ | √ |
- 1.1 通过Cocoapods集成
- 1.2 手动集成
编写podfile
分为是否使用了use_frameworks!
两种情况
1.如果没使用use_frameworks!
pod 'SocialSDK'
2.使用了use_frameworks!
pod 'SocialSDK_UF'
pod 'SocialSDK_R'
直接拖动Classes文件到自己的项目中,添加Resources中的资源文件(推荐使用CocoaPods)。
- 1、 添加URL Schemes 格式"wb"+新浪appKey
- 2、 适配iOS9+系统
- 1、 添加URL Schemes 格式 微信appKey
- 2、 适配iOS9+系统
- 1、 添加URL Schemes
- 格式"tencent"+QQ的appID + "QQ"+QQ的appID转换成十六进制(不足8位前面补0) 在线转换十六进制
- 例如: appID:100424468 --> tencent100424468 QQ05fc5b14
- 2、适配iOS9+系统
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>sina.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
<key>weibo.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
<key>weibo.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>sinaimg.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>sinajs.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>sina.com.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 微信 URL Scheme 白名单-->
<string>wechat</string>
<string>weixin</string>
<!-- 新浪微博 URL Scheme 白名单-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<!-- QQ、Qzone URL Scheme 白名单-->
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV4</string>
<string>mqzoneopensdk</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqqwpa</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqqbrowser</string>
<string>mttbrowser</string>
</array>
在 AppDelegate.m
中做如下配置
#import "GSPlatformParamConfigManager.h"
#import "GSSocialManager.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[GSPlatformParamConfigManager share] addSinaPlatformConfigAppKey:@"" redirectURI:@""];
[[GSPlatformParamConfigManager share] addQQPlatformConfigAppID:@""];
[[GSPlatformParamConfigManager share] addWeChatPlatformConfigAppID:@"" secret:@""];
return YES;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
BOOL res = [[GSSocialManager share] handleOpenURL:url];
if (!res) {
//做其他SDK回调处理
}
return res;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL res = [[GSSocialManager share] handleOpenURL:url];
if (!res) {
//做其他SDK回调处理
}
return res;
}
#import "GSSelectView.h"
#import "GSShareChannelType.h"
#import "GSLoginManager.h"
[GSSelectView showShareViewWithChannels:@[
@(GSShareChannelTypeSina),
@(GSShareChannelTypeQQ),
@(GSShareChannelTypeQzone),
@(GSShareChannelTypeWechatSession)
] completionBlock:^(BOOL isCancel, GSLogoReourcesType reourcesType) {
if (isCancel) {
} else {
id<GSLoginProtocol> login = [[GSLoginManager share] getShareProtocolWithChannelType:[GSLoginManager getShareChannelTypeWithLogoReourcesType:reourcesType]];
[login setLoginCompletionBlock:^(id<GSLoginResultProtocol> result) {
}];
[login doLogin];
}
}];
#import "GSSelectView.h"
#import "GSShareChannelType.h"
#import "GSShareManager.h"
[GSSelectView showShareViewWithChannels:@[
@(GSShareChannelTypeSina),
@(GSShareChannelTypeQQ),
@(GSShareChannelTypeQzone),
@(GSShareChannelTypeWechatSession)
] completionBlock:^(BOOL isCancel, GSLogoReourcesType reourcesType) {
if (isCancel) {
} else {
id<GSShareProtocol> share = [[GSShareManager share] getShareProtocolWithChannelType:[GSShareManager getShareChannelTypeWithLogoReourcesType:reourcesType]];
[share shareSimpleText:@"good day"];
[share setShareCompletionBlock:^(id<GSShareResultProtocol> result) {
}];
}
}];
SocialSDK is under WTFPL. You can do what the fuck you want with SocialSDK. See LICENSE file for more info.