美文网首页热门iOS收藏
ios第三方登录和分享(shareSDK)2016.6

ios第三方登录和分享(shareSDK)2016.6

作者: cj2527 | 来源:发表于2016-06-12 13:26 被阅读436次

    前言

    开发环境:xcode7 +ios9
    第三方组件:shareSDK分享组件
    SDK下载地址:http://www.mob.com/#/downloadDetail/ShareSDK/ios
    文档地址:http://wiki.mob.com/ios%E7%AE%80%E6%B4%81%E7%89%88%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90/#h1-2

    快速集成微博

    1.首先新建一个工程,适配IOS9

    需要在Build Setting中将Enable bitcode关闭,或设置编译标识ENABLE_BITCODE=NO。在右键info.plist用source code打开,info.plist中复制粘贴以下链接中的代码三段代码参考,http://dev.umeng.com/social/ios/ios9

    2.下载的SDK导入工程,并添加依赖库

    http://www.mob.com/注册,并且添加一个应用,获得AppKey和App Secret.
    具体过程看官方文档介绍,很详细。最后下载SDK,导入,添加依赖库。工程目录截图如下:

    4F278842-180B-4AD8-989F-9E1B4751A831.png

    3.修改配置

    9EE594A9-FC15-4B6F-AD00-D5C1343C395C.png

    不然会报找不到头文件的错误

    1F5E5FBA-147F-4699-BEA4-22E053DB7CA8.png

    不然会报NSConcreteMutableData wbsdk_base64EncodedString错误。

    最后编译运行成功

    4设置ShareSDK的Appkey并初始化对应的第三方社交平台 打开AppDelegate.m(代表你的工程名字)导入头文件

    AppDelegate.m文件完整代码如下:

    #import "AppDelegate.h"
    #import <ShareSDK/ShareSDK.h>
    #import <ShareSDKConnector/ShareSDKConnector.h>
    
    ////腾讯开放平台(对应QQ和QQ空间)SDK头文件
    //#import <TencentOpenAPI/TencentOAuth.h>
    //#import <TencentOpenAPI/QQApiInterface.h>
    //
    ////微信SDK头文件
    //#import "WXApi.h"
    
    //新浪微博SDK头文件
    #import "WeiboSDK.h"
    
    
    //新浪微博SDK需要在项目Build Settings中的Other Linker Flags添加"-ObjC"
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        /**
         *  设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册
         *  在将生成的AppKey传入到此方法中。
         *  方法中的第二个第三个参数为需要连接社交平台SDK时触发,
         *  在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。
         *  如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。
         */
        [ShareSDK registerApp:@"iosv1101"
         
              activePlatforms:@[
                                @(SSDKPlatformTypeSinaWeibo),
                                @(SSDKPlatformTypeMail),
                                @(SSDKPlatformTypeSMS),
                                @(SSDKPlatformTypeCopy),
                                @(SSDKPlatformTypeWechat),
                                @(SSDKPlatformTypeQQ),
                                @(SSDKPlatformTypeRenren),
                                @(SSDKPlatformTypeGooglePlus)]
                     onImport:^(SSDKPlatformType platformType)
         {
             switch (platformType)
             {
    //             case SSDKPlatformTypeWechat:
    //                 [ShareSDKConnector connectWeChat:[WXApi class]];
    //                 break;
    //             case SSDKPlatformTypeQQ:
    //                 [ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
    //                 break;
                 case SSDKPlatformTypeSinaWeibo:
                     [ShareSDKConnector connectWeibo:[WeiboSDK class]];
                     break;
                   default:
                     break;
             }
         }
              onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo)
         {
             
             switch (platformType)
             {
                 case SSDKPlatformTypeSinaWeibo:
                     //设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权
                     [appInfo SSDKSetupSinaWeiboByAppKey:@"568898243"
                                               appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
                                             redirectUri:@"http://www.sharesdk.cn"
                                                authType:SSDKAuthTypeBoth];
                     break;
                 case SSDKPlatformTypeWechat:
                     [appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"
                                           appSecret:@"64020361b8ec4c99936c0e3999a9f249"];
                     break;
                 case SSDKPlatformTypeQQ:
                     [appInfo SSDKSetupQQByAppId:@"100371282"
                                          appKey:@"aed9b0303e3ed1e27bae87c33761161d"
                                        authType:SSDKAuthTypeBoth];
                     break;
                   default:
                     break;
             }
         }];
        return YES;
        
    }
    
    
    @end
    
    

    5添加实现代码 打开需要集成分享功能的视图源码,把如下代码复制并粘贴到你要分享的位置,例如到响应分享按钮的方法中。并且修改相应的参数即可。

    添加一个实例图片shareImg.png,并添加一个按钮,关联按钮事件shareClick
    ViewController.m完整代码如下:

    #import "ViewController.h"
    #import <ShareSDK/ShareSDK.h>
    #import <ShareSDKUI/ShareSDK+SSUI.h>
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
     
    }
    
    
    - (IBAction)shareClick:(UIButton *)sender{
        
        NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
        //(注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传iamge参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
        if (imageArray) {
            
            NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
            [shareParams SSDKSetupShareParamsByText:@"分享内容"
                                             images:imageArray
                                                url:[NSURL URLWithString:@"http://mob.com"]
                                              title:@"分享标题"
                                               type:SSDKContentTypeAuto];
            //2、分享(可以弹出我们的分享菜单和编辑界面)
            [ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
                                     items:nil
                               shareParams:shareParams
                       onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
                           
                           switch (state) {
                               case SSDKResponseStateSuccess:
                               {
                                   UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
                                                                                       message:nil
                                                                                      delegate:nil
                                                                             cancelButtonTitle:@"确定"
                                                                             otherButtonTitles:nil];
                                   [alertView show];
                                   break;
                               }
                               case SSDKResponseStateFail:
                               {
                                   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失败"
                                                                                   message:[NSString stringWithFormat:@"%@",error]
                                                                                  delegate:nil
                                                                         cancelButtonTitle:@"OK"
                                                                         otherButtonTitles:nil, nil];
                                   [alert show];
                                   break;
                               }
                               default:
                                   break;
                           }
                       }
             ];}
    }
    
    @end
    
    

    最后运行成功,不过shareSDK的分享界面不太好看。

    相关文章

      网友评论

      • 863c73f31933:作者你好,sharesdk新浪分享sso失败,配置信息都看了核对了几遍了,在测试demo里面是可以的,但是放到工程里面就不行了,作者你知道这是什么原因不?
      • Supersweet007:问一下,为什么QQ授权成功,获取不到用户信息,表示我可以获取到token

      本文标题:ios第三方登录和分享(shareSDK)2016.6

      本文链接:https://www.haomeiwen.com/subject/pamedttx.html