美文网首页
苹果自带分享和友盟分享

苹果自带分享和友盟分享

作者: lee_moons | 来源:发表于2016-06-12 16:38 被阅读1285次

    系统自带分享使用 "<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系统" --> 信任白名单

    相关文章

      网友评论

          本文标题:苹果自带分享和友盟分享

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