ShareSDK for IOS 的个人理解

本文深入解析了如何将ShareSDK轻松集成至iOS应用,并提供了针对iOS9的适配指南,确保应用在社交平台上的分享功能正常运行。文章详细介绍了从SDK下载、依赖库添加、AppKey设置到集成实现的全过程,并强调了在配置时需要注意的关键点,如正确处理iOS9的兼容性问题。此外,还提供了进阶功能指导,如SSO设置和更多社交平台的配置,以提升用户体验和分享量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过了半天的努力,参照着官方的demo,终于把问题解决了,其实官方的demo是很容易理解的个人比较建议,可前往http://mob.com下载官方Demo,里面有详细的文档说明以及教程,下面的教程也都是官方文档的东西,可是我在官方文档的基础上,说一点点东西(下文会用橘黄色标出),此处需要特别注意,针对iOS9,需要做适当的配置,否则达不到您以往使用的效果,具体可参照官方下载的Demo里面的一篇“iOS9对ShareSDK的影响(iOS9适配必看)”的文档,讲解的也很详细


以下是官方简洁版文档:

                ShareSDK 简洁版集成文档

第一步:将下载的SDK解压后导入您的工程中,见下图

       

拖到工程中后弹出以下对话框,勾选”Copy items into destination group’s folder(if needed)”,并点击“Finish“按钮, 如图

     

注意:请务必在上述步骤中选择“Create groups for any added folders”单选按钮组。如果你选择“Create folder references for any added folders”,一个蓝色的文件夹引用将被添加到项目并且将无法找到它的资源。

第二步:添加依赖库
添加步骤见下图

 必须添加的依赖库如下:

    libicucore.dylib
    libz.dylib
    libstdc++.dylib
   JavaScriptCore.framework

(前三个在Xcode7.0.1存在的形式为

    libicucore.tbd
    libz.tbd
    libstdc++.tbd




以下依赖库根据社交平台添加

(1)新浪微博SDK依赖库

      ImageIO.framework

(2)QQ好友和QQ空间SDK依赖库(新注册腾讯开放平台帐号只支持SSO授权,只是老开发者才可以使用网页授权)

      libsqlite3.dylib

(3)微信SDK依赖库:

     libsqlite3.dylib

(4)Google+SDK依赖库:

     CoreMotion.framework
     CoreLocation.framework
     MediaPlayer.framework
     AssetsLibrary.framework
     AddressBook.framework

第三步:设置ShareSDK的AppKey并初始化社交平台
打开*AppDelegate.m(*代表你的工程名字)导入文件头ShareSDK.h


#import <ShareSDK/ShareSDK.h>

在- (BOOL)application: didFinishLaunchingWithOptions:方法中调用registerApp方法来初始化SDK并且初始化第三方平台(此处要特别注意了,如果你要是想添加短信分享功能,那么需要在activePlatforms的参数数组里面添加上@(SSDKPlatformTypeSMS)同时onImport对应的参数不可以填nil,就算没有其它的参数,也需要这样填onImport:^(SSDKPlatformType platformType) {     
               

}    ,否则会出“平台[短信]需要依靠ShareSDKConnector.framework进行分享,请先导入ShareSDKConnector.framework后再试!”的提示框,所以,哪怕你的分享只有短信分享一种,你也需要这样写

#import "AppDelegate.h"
#import <ShareSDK/ShareSDK.h>


@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:@[
                            @(SSDKPlatformTypeSMS)
                            ]
                 onImport:^(SSDKPlatformType platformType) {
               
                 }
          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
              
            }];
    
    return YES;
}

@end


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    /**
     *  设置ShareSDK的appKey,如果尚未在ShareSDK官网注册过App,请移步到http://mob.com/login 登录后台进行应用注册,
     *  在将生成的AppKey传入到此方法中。
     *  方法中的第二个参数用于指定要使用哪些社交平台,以数组形式传入。第三个参数为需要连接社交平台SDK时触发,
     *  在此事件中写入连接代码。第四个参数则为配置本地社交平台时触发,根据返回的平台类型来配置平台信息。
     *  如果您使用的时服务端托管平台信息时,第二、四项参数可以传入nil,第三项参数则根据服务端托管平台来决定要连接的社交SDK。
     */
    [ShareSDK registerApp:@"iosv1101"
          activePlatforms:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo), @(SSDKPlatformTypeFacebook), @(SSDKPlatformTypeTwitter)]
                 onImport:nil
          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 SSDKPlatformTypeTencentWeibo:
                      //设置腾讯微博应用信息,其中authType设置为只用Web形式授权
                      [appInfo SSDKSetupTencentWeiboByAppKey:@"801307650"
                                                   appSecret:@"ae36f4ee3946e1cbb98d6965b0b2ff5c"
                                                 redirectUri:@"http://www.sharesdk.cn"
                                                    authType:SSDKAuthTypeWeb];
                      break;
                  case SSDKPlatformTypeFacebook:
                      //设置Facebook应用信息,其中authType设置为只用SSO形式授权
                      [appInfo SSDKSetupFacebookByAppKey:@"107704292745179"
                                               appSecret:@"38053202e1a5fe26c80c753071f0b573"
                                                authType:SSDKAuthTypeSSO];
                      break;
                  case SSDKPlatformTypeTwitter:
                      [appInfo SSDKSetupTwitterByConsumerKey:@"mnTGqtXk0TYMXYTN7qUxg"
                                              consumerSecret:@"ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"
                                                 redirectUri:@"http://www.sharesdk.cn"];
                      break;
                  default:
                      break;
              }
              
          }];
    
    return YES;
}
第四步:添加实现代码
打开需要集成分享功能的视图源码,把如下代码复制并粘贴到你要分享的位置,例如到响应分享按钮的方法中。并且修改相应的参数即可。(比方说你是在点击按钮的时候进行分享的,那么下面这段代码就可以放在您的按钮监听方法里面

//创建分享参数
    NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
    [shareParams SSDKSetupShareParamsByText:@"分享内容 @value(url)"
                                     images:@[[UIImage imageNamed:@"shareImg"]]
                                        url:[NSURL URLWithString:@"http://mob.com"]
                                      title:@"分享标题"
                                       type:SSDKContentTypeImage];
    
    //进行分享
    [ShareSDK share:SSDKPlatformTypeSinaWeibo
         parameters:shareParams
     onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
        
         switch (state) {
             case SSDKResponseStateSuccess:
             {
                 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
                                                                     message:nil
                                                                    delegate:nil
                                                           cancelButtonTitle:@"确定"
                                                           otherButtonTitles:nil];
                 [alertView show];
                 break;
             }
             case SSDKResponseStateFail:
             {
                 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享失败"
                                                                     message:[NSString stringWithFormat:@"%@", error]
                                                                    delegate:nil
                                                           cancelButtonTitle:@"确定"
                                                           otherButtonTitles:nil];
                 [alertView show];
                 break;
             }
             case SSDKResponseStateCancel:
             {
                 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享已取消"
                                                                     message:nil
                                                                    delegate:nil
                                                           cancelButtonTitle:@"确定"
                                                           otherButtonTitles:nil];
                 [alertView show];
                 break;
             }
             default:
                 break;
         }
         
     }];

编译并运行后,点击分享按钮就成功发送到社交平台的话说明你已经基本集成成功了。但是,为了使您的用户有更好的分享体验,以及您的应用有更多的分享量,更好地在社交平台上传播,我们建议您参考“进阶功能”的指引进行SSO(免登录)和更多社交平台的设置。

可选:支持微信所需的相关配置及代码


在微信开放平台(http://open.weixin.qq.com/ )注册应用并取得应用的AppID,然后打开下图位置,在URL Types中添加微信AppID

打开*AppDelegate.m(*代表你的工程名字)文件,导入微信SDK的头文件并修改初始化方法(修改地方加粗显示):


可选:支持QQ所需的相关配置及代码
登录QQ互联(http://connect.qq.com/ )注册成为开发者并登记应用取得AppId,然后打开下图位置,在URL Types中添加QQ的AppID,其格式为:”QQ” + AppId的16进制(如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 注意:转换后的字母要大写)
转换16进制的方法:echo ‘ibase=10;obase=16;801312852′|bc,其中801312852为QQ的AppID,见下图



然后打开工程中的*AppDelegate.m(*代表你的工程名字)文件,导入QQSDK的头文件并修改初始化方法(修改地方加粗显示):


可选:配置新浪微博、Facebook的SSO
登录新浪微博和facebook的开放平台,获取AppID 。新浪微博的url scheme的设置格式为wb+AppID,facebook的设置格式为fb+AppID。具体参考下图:


 附:目前的新浪微博SDK需要在项目的Build Settings中的Other Linker Flags添加”-ObjC”,如果不配置有可能会崩溃。步骤如下:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值