社会化分享

社会化分享

广告 - 免费推广.

原生框架

了解内容:(在中国不适用,只支持新浪微博和腾讯微博)
苹果原生的只有新浪微博和腾讯微博.其他的不行.不实用.
框架:Social.
控制器:SLComposeViewController

 if ([SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo] == NO) {
        NSLog(@"不支持微博分享服务");
    }
    // 实例化
    SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
    
    // 配置
    [composeVc setInitialText:@"测试用的"];
    [composeVc addImage:[UIImage imageNamed:@"nihao"]];
    
    // 结果回调参数
    // SLComposeViewControllerCompletionHandler
    composeVc.completionHandler = ^(SLComposeViewControllerResult result){
        // SLComposeViewControllerResultCancelled,
        // SLComposeViewControllerResultDone
        if (result == SLComposeViewControllerResultDone) {
            NSLog(@"分享成功");
        } else {
            NSLog(@"分享失败");
        }
    };
    // 3. 弹出来
    [self presentViewController:composeVc animated:YES completion:nil];

第三方框架

  • shareSDK和友盟
  • 注意原理:集成所有share,但是这个分享的前提是你必须去相应网站配置信息.演示微信和微博的分享,只是把其他app的分享集成到一起而已,本身不能做分享的. 因此需要你分别取shareSDK上和各个需要分享到应用开放平台上注册appKey和appSecret.

根据shareSDK官网上的代码提示.

  1. 导入ShareSDK的框架
    • 在下载的时候需要指定所分享的平台.
  2. 导入每个SDK所需要使用的系统框架(根据你需要的分享平台的系统框架决定)
  3. 初始化ShareSDK注册并验证.
  4. 代码部分
    4.1. 导入相应的头文件.(ShareSDK的,你需要分享的app的)
    导入时注意点:
    1. .framework用<框架名>导入,.a用"框架名"导入
    2. 注意系统自带的分享不需要连接,只需要连接第三方的分享(因为第三方有SDK需要连接)
    4.2. 注册,初始化ShareSDK应用
    根据官网上的示例代码,配置参数.
    //    appKey
    

// ShareSDK应用标识,可在http://mob.com中登录并创建App后获得。
// activePlatforms
// 使用的分享平台集合,如:@[@(SSDKPlatformTypeSinaWeibo), @(SSDKPlatformTypeTencentWeibo)];
// configurationHandler
// 配置回调处理,在此方法中根据设置的platformType来填充应用配置信息
// connectHandler
// 导入回调处理,当某个平台的功能需要依赖原平台提供的SDK支持时,需要在此方法中对原平台SDK进行导入操作。具体的导入方式可以参考ShareSDKConnector.framework中所提供的方法。
/// 注册
NSArray *platforms = @[@(SSDKPlatformTypeSinaWeibo),
@(SSDKPlatformTypeWechat),
@(SSDKPlatformTypeMail),
@(SSDKPlatformTypeSMS)];
//需要连接的分享平台
SSDKImportHandler importHandler = ^(SSDKPlatformType platformType)
{
switch (platformType)
{
case SSDKPlatformTypeWechat:
[ShareSDKConnector connectWeChat:[WXApi class]];
break;
case SSDKPlatformTypeSinaWeibo:
[ShareSDKConnector connectWeibo:[WeiboSDK class]];
break;
default:
break;
}
};
// 需要连接平台的info参数

[ShareSDK registerApp:shareSDKAppKey activePlatforms:platforms onImport:importHandler onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
    switch (platformType)
    {
        case SSDKPlatformTypeSinaWeibo:
            //设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权,注意授权回调页不能写错,得写开放者平台上填写的.不然会得不到你的授权.
            [appInfo SSDKSetupSinaWeiboByAppKey:shareWeiboAppKey
                                      appSecret:shareWeiboAppSecret
                                    redirectUri:SinaWeiboRedirectUri
                                       authType:SSDKAuthTypeBoth];
            break;
        case SSDKPlatformTypeWechat:
            [appInfo SSDKSetupWeChatByAppId:shareWechatAppKey
                                  appSecret:shareWechatAppSecret];
            break;
        default:
            break;
    }
}];
```

** 注意授权回调页不能写错,得写开放者平台上填写的.不然会得不到你的授权. **

  1. 弹出分享界面
    5.1 弹出分享界面方法,根据方法参数配置相关参数.
社会化分享_第1张图片
Snip20161031_4.png
社会化分享_第2张图片
Snip20161101_11.png

Other Linker:如果libWeiboSDK.a里面的.m(.a文件中的.m已经被编译成其他的东西了)文件的代码.

//1、创建分享参数
    NSString *text = @"测试用的";
    
    NSArray* imageArray = @[[UIImage imageNamed:@"IMG_2213.jpg"],@"http://upload.chinaz.com/2015/0703/1435902911410.jpg"];
    
    //分享的网页路径
    NSURL *url = [NSURL URLWithString:@"http://mob.com"];
    
    NSString *title = @"分享的标题";
    
//    (注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传iamge参数 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
    if (imageArray) {
        
        NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
        [shareParams SSDKSetupShareParamsByText:text
                                         images:imageArray
                                            url:url
                                          title:title
                                           type:SSDKContentTypeAuto];
        // show分享
        [ShareSDK showShareActionSheet:nil items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
            // SSDKResponseState表示结果状态
            if (state == SSDKResponseStateSuccess) {
                NSLog(@"分享成功: %@, %@", userData, contentEntity);
            }
            
            if (error) {
                NSLog(@"错误信息: %@", error);
            }
        }];
    }

微信分享,需要跳转进微信页面.进行额外的配置.

  1. SSO登陆认证,跳转APP(免登陆进行授权)
    6.1. wechat平台需要添加sso之后才能使用,因为微信没有网页,必须走sso
    6.2. 配置info中的url scheme!
    6.3. iOS9.0之后,要配置https
    6.4. 白名单,根据官网配置.
社会化分享_第3张图片
Snip20161101_15.png
社会化分享_第4张图片
Snip20161101_16.png

你可能感兴趣的:(社会化分享)