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、音频链接、视频链接分享

  SocialSDK
  SocialSDK
  SocialSDK
  SocialSDK
  SocialSDK

微博登录

  SocialSDK

平台集成

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

我的微信:

SocialSDK

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