Latest 0.0.5
Homepage https://github.com/GagSquad/SocialSDK
License WTFPL
Platforms ios 7.0, requires ARC
Authors ,

SocialSDK

Version
Platform
Carthage Compatible
build

简介: 实现 Sina WeChat QQ 登录和分享功能

所用第三方SDK版本

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

1. SDK功能

平台 分享 登录 支付
Sina ×
QQ ×
Wechat ×

2.分享渠道支持

渠道 纯文本 单图 普通链接 音频链接 视频链接
Sina
QQ
Qzone
WechatSession
WechatTimeLine

Renderings

纯文本、单图、URL、音频链接、视频链接分享

 
 
 
 
 

微博登录

 

平台集成

1. SocialSDK集成

2. SocialSDK各平台配置

3. 调用SocialSDK


Installation

CocoaPods

编写podfile分为是否使用了use_frameworks!两种情况

1.如果没使用use_frameworks!

pod 'SocialSDK'

2.使用了use_frameworks!

pod 'SocialSDK_UF'
pod 'SocialSDK_R'

手动集成介绍

直接拖动Classes文件到自己的项目中,添加Resources中的资源文件(推荐使用CocoaPods)。

SocialSDK各平台配置

Sina平台配置

WeChat平台配置

QQ平台配置

  • 1、 添加URL Schemes
  • 格式"tencent"+QQ的appID + "QQ"+QQ的appID转换成十六进制(不足8位前面补0) 在线转换十六进制
  • 例如: appID:100424468 –> tencent100424468 QQ05fc5b14
  • 2、适配iOS9+系统

iOS9+适配

1. HTTPS传输 在info.plist中加入安全域名白名单(右键info.plist用source code打开)

<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>

2.配置ApplicationQueriesSchemes(应用间跳转)

<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) {

                                                      }];
                                                  }
    }];

联系方式

QQ:470058952

我的微信:

License

SocialSDK is under WTFPL. You can do what the fuck you want with SocialSDK. See LICENSE file for more info.

Latest podspec

{
    "name": "SocialSDK",
    "version": "0.0.5",
    "summary": "SocialSDK SDK for iOS",
    "homepage": "https://github.com/GagSquad/SocialSDK",
    "authors": {
        "[email protected]": "https://github.com/itlijunjie",
        "LVJIALIN": "https://github.com/LVJIALIN"
    },
    "license": {
        "type": "WTFPL",
        "file": "LICENSE"
    },
    "platforms": {
        "ios": "7.0"
    },
    "source": {
        "git": "https://github.com/GagSquad/SocialSDK.git",
        "tag": "0.0.5"
    },
    "requires_arc": true,
    "xcconfig": {
        "OTHER_LDFLAGS": " -all_load"
    },
    "default_subspecs": [
        "UI",
        "QQ",
        "Sina",
        "WeChat"
    ],
    "subspecs": [
        {
            "name": "TencentOpenApiSDK",
            "vendored_frameworks": "SDK/TencentOpenApi/TencentOpenAPI.framework",
            "xcconfig": {
                "OTHER_LDFLAGS": "$(inherited) -lz -lsqlite3 -liconv -lstdc++ -framework "SystemConfiguration" -framework "CoreTelephony""
            }
        },
        {
            "name": "WeiboSDK",
            "source_files": "SDK/libWeiboSDK/*.{h,m}",
            "vendored_libraries": "SDK/libWeiboSDK/libWeiboSDK.a",
            "resources": "SDK/libWeiboSDK/WeiboSDK.bundle",
            "frameworks": [
                "ImageIO",
                "SystemConfiguration",
                "CoreText",
                "QuartzCore",
                "Security",
                "UIKit",
                "Foundation",
                "CoreGraphics",
                "CoreTelephony"
            ],
            "libraries": [
                "sqlite3",
                "z"
            ]
        },
        {
            "name": "WeChatSDK",
            "source_files": "SDK/WeChatSDK/*.{h,m}",
            "vendored_libraries": "SDK/WeChatSDK/libWeChatSDK.a",
            "frameworks": [
                "Foundation",
                "SystemConfiguration",
                "CoreTelephony",
                "CFNetwork"
            ],
            "libraries": [
                "z",
                "c++",
                "sqlite3"
            ]
        },
        {
            "name": "Core",
            "source_files": [
                "SocialSDK/Classes/Core/Logger/**/*.{h,m}",
                "SocialSDK/Classes/Core/Util/**/*.{h,m}",
                "SocialSDK/Classes/Core/SocialManager/**/*.{h,m}",
                "SocialSDK/Classes/Core/PlatformParamConfig/Base/**/*.{h,m}"
            ],
            "public_header_files": [
                "SocialSDK/Classes/Core/Logger/**/*.h",
                "SocialSDK/Classes/Core/Util/**/*.h",
                "SocialSDK/Classes/Core/SocialManager/**/*.h",
                "SocialSDK/Classes/Core/PlatformParamConfig/Base/**/*.h"
            ],
            "resources": "SocialSDK/Rrources/GSSocialSDKResources.bundle"
        },
        {
            "name": "UI",
            "source_files": "SocialSDK/Classes/UI/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/UI/**/*.h",
            "dependencies": {
                "SocialSDK/Core": []
            }
        },
        {
            "name": "QQPlatformParamConfig",
            "source_files": "SocialSDK/Classes/Core/PlatformParamConfig/QQ/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Core/PlatformParamConfig/QQ/**/*.h",
            "dependencies": {
                "SocialSDK/TencentOpenApiSDK": [],
                "SocialSDK/Core": []
            }
        },
        {
            "name": "SinaPlatformParamConfig",
            "source_files": "SocialSDK/Classes/Core/PlatformParamConfig/Sina/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Core/PlatformParamConfig/Sina/**/*.h",
            "dependencies": {
                "SocialSDK/WeiboSDK": [],
                "SocialSDK/Core": []
            }
        },
        {
            "name": "WeChatPlatformParamConfig",
            "source_files": "SocialSDK/Classes/Core/PlatformParamConfig/WeChat/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Core/PlatformParamConfig/WeChat/**/*.h",
            "dependencies": {
                "SocialSDK/WeChatSDK": [],
                "SocialSDK/Core": []
            }
        },
        {
            "name": "ShareBase",
            "source_files": "SocialSDK/Classes/Share/Base/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Share/Base/**/*.h",
            "dependencies": {
                "SocialSDK/Core": []
            }
        },
        {
            "name": "QQShare",
            "source_files": "SocialSDK/Classes/Share/QQ/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Share/QQ/**/*.h",
            "dependencies": {
                "SocialSDK/QQPlatformParamConfig": [],
                "SocialSDK/ShareBase": []
            }
        },
        {
            "name": "QzoneShare",
            "source_files": "SocialSDK/Classes/Share/Qzone/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Share/Qzone/**/*.h",
            "dependencies": {
                "SocialSDK/QQPlatformParamConfig": [],
                "SocialSDK/ShareBase": []
            }
        },
        {
            "name": "SinaShare",
            "source_files": "SocialSDK/Classes/Share/Sina/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Share/Sina/**/*.h",
            "dependencies": {
                "SocialSDK/SinaPlatformParamConfig": [],
                "SocialSDK/ShareBase": []
            }
        },
        {
            "name": "WeChatSessionShare",
            "source_files": "SocialSDK/Classes/Share/WeChatSession/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Share/WeChatSession/**/*.h",
            "dependencies": {
                "SocialSDK/WeChatPlatformParamConfig": [],
                "SocialSDK/ShareBase": []
            }
        },
        {
            "name": "WeChatTimeLineShare",
            "source_files": "SocialSDK/Classes/Share/WeChatTimeLine/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Share/WeChatTimeLine/**/*.h",
            "dependencies": {
                "SocialSDK/WeChatPlatformParamConfig": [],
                "SocialSDK/ShareBase": []
            }
        },
        {
            "name": "LoginBase",
            "source_files": "SocialSDK/Classes/Login/Base/**/*.{h,m,mm}",
            "public_header_files": "SocialSDK/Classes/Login/Base/**/*.h",
            "dependencies": {
                "SocialSDK/Core": []
            }
        },
        {
            "name": "QQLogin",
            "source_files": "SocialSDK/Classes/Login/QQ/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Login/QQ/**/*.h",
            "dependencies": {
                "SocialSDK/QQPlatformParamConfig": [],
                "SocialSDK/LoginBase": []
            }
        },
        {
            "name": "SinaLogin",
            "source_files": "SocialSDK/Classes/Login/Sina/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Login/Sina/**/*.h",
            "dependencies": {
                "SocialSDK/SinaPlatformParamConfig": [],
                "SocialSDK/LoginBase": []
            }
        },
        {
            "name": "WeChatLogin",
            "source_files": "SocialSDK/Classes/Login/WeChat/**/*.{h,m}",
            "public_header_files": "SocialSDK/Classes/Login/WeChat/**/*.h",
            "dependencies": {
                "SocialSDK/WeChatPlatformParamConfig": [],
                "SocialSDK/LoginBase": []
            }
        },
        {
            "name": "QQ",
            "dependencies": {
                "SocialSDK/UI": [],
                "SocialSDK/QQShare": [],
                "SocialSDK/QzoneShare": [],
                "SocialSDK/QQLogin": []
            }
        },
        {
            "name": "Sina",
            "dependencies": {
                "SocialSDK/SinaShare": [],
                "SocialSDK/SinaLogin": []
            }
        },
        {
            "name": "WeChat",
            "dependencies": {
                "SocialSDK/WeChatSessionShare": [],
                "SocialSDK/WeChatTimeLineShare": [],
                "SocialSDK/WeChatLogin": []
            }
        }
    ]
}

Pin It on Pinterest

Share This