苹果自带分享和友盟分享

2016-06-12  本文已影响1285人  lee_moons

系统自带分享使用 "<Social/Social.h> 框架
系统自带分享分为三步

1.判断分享是否可用

    if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
        NSLog(@"不可用,请到系统设置中配置账号和密码");
    }

服务类型有:微博 腾讯微博 facebook 和 twitter四种类型 其中facebook和twitter在国内由于你懂得原因不能使用,腾讯微博现在发展太差,所以一般都使用微博服务
如果不可用,需要在系统设置中登录对应的微博账号

2.创建分享控制器

    SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];

控制器可以预设 图片 文字 和网址
微博可以定位,但是只有在手机app上的微博详情才能看到

// 预设文字
    [composeVC setInitialText:@"愿时光不老,阳光不燥,你我都好:"];
    // 预设图片
    [composeVC addImage:[UIImage imageNamed:@"自拍照"]];
    // 网址
    [composeVC addURL:[NSURL URLWithString:@"http://www.baidu.com"]];

3.弹出分享控制器

    [self presentViewController:composeVC animated:YES completion:nil];


友盟分享

当我们集成第三方SDK时,一定要参考第三方的集成文档。以友盟为例.

  1. 创建appKey
  2. 下载并安装SDK
    UMSocial_Sdk_5.2.1
  3. 设置AppKey
  4. 添加实现代码
#import "UMSocial.h"
#import "UMSocialSinaSSOHandler.h"
```obj    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [UMSocialData setAppKey:@"57528d7967e58e73d7000f33"];
    
    return YES;
}

ViewController里面的实现

首先导入头文件遵守协议

 #import "UMSocial.h"
 @interface ViewController ()<UMSocialUIDelegate>

 @end

然后实现方法

//如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法
    
    [UMSocialData defaultData].extConfig.title = @"分享的title";
    [UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey:@"57528d7967e58e73d7000f33"
                                      shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
                                     shareImage:[UIImage imageNamed:@"icon"]
                                shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone]
                                       delegate:self];

如果是iOS9系统,还需要适配iOS9的HTTP传输安全问题


如果使用第三方登录的话,分为OAuth和SSO俩种登录方法
OAuth授权:好处:不需要下载客户端 坏处:能够看到账号密码 不安全 效率低
SSO授权: 坏处:必须要安装对应客户端 好处:只要第三方的客户端已经登录,本地客户端不需要登录 安全 效率高

其中我们使用SSO授权登录 使用方法
SSO协议无法在模拟器上实现(找不到对应的app)

实现微博SSO协议需要5个步骤
1.按友盟要求导入第三方sina包
参照友盟官方文档
2.配置URL schemes
Targets - Info - URL Types 里面配置schemes
3.按友盟添加SSO授权开关 -->复制友盟官网代码

    //打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。需要 #import "UMSocialSinaSSOHandler.h"
    
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"3921700954"
                                              secret:@"04b48b094faeb16683c32669824ebdad"
                                         RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];

4.添加系统回调 -->友盟官网方法过期,可用application:openURL:options: 代替

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }
    return result;
}

5.适配iOS9 参照友盟官网"适配iOS9系统" --> 信任白名单

上一篇下一篇

猜你喜欢

热点阅读