开发技能友盟JC专题

程胖出品——友盟开发步骤

2016-03-07  本文已影响567人  胖子程

分享、第三方登陆:
1.首先注册需要分享平台的账号(本次介绍三个平台:微信、QQ和微博,其他平台类似)
1.1.平台链接
微信平台:
QQ平台:
微博平台:
1.2.遇到问题(下面是一些需要注意的问题,其他的信息都是看着填的,一看就知道了)
1.2.1.App图标(微信和QQ真特么的变态,MD自己一个公司的都不能统一一下)

1.2.1.png 1.2.2.png 1.2.3.png 1.2.4.png
2.剩下的步骤就是仔仔细细看下分享详细集成 2.1.png
3.创建项目,通过cocoaPods添加友盟,具体步骤如果不会可以参考这个靠谱的链接cocoaPods使用介绍

4.从友盟上下载SDK,导入到工程中(具体步骤如下)

4.1.png 4.2.png 4.3.png 4.4.png 4.5.png

5.开始配置项目环境了!!!前方高能

5.1.png

6.剩下的就是代码了
在AppDelegate里面配置主要有一下几点
6.1 设置友盟社会化组件appkey

     [UMSocialData setAppKey:UmengAppkey];
     //打开调试log的开关
     [UMSocialData openLog:YES];

6.2.1 初始化微信
设置微信AppId、appSecret,分享url

    [UMSocialWechatHandler setWXAppId:@"wxe06bfa7eb39db886" appSecret:@"b27bec3c35d61f487bca44f2f20351a9" url:@"http://www.umeng.com/social"];
    //亲测——这个url是用来替换上一行的url----朋友圈这个链接可以跳转,给微信好友分享的却不能??一直跳转到UMengDemo.原因是下面打开了分享到APP借口23333
    [UMSocialData defaultData].extConfig.wechatSessionData.url = @"http://baidu.com";
    //这个是分享到朋友圈的链接
    [UMSocialData defaultData].extConfig.wechatTimelineData.url = @"http://baidu.com";
    //如果有链接,这个就是链接的名称
    [UMSocialData defaultData].extConfig.wechatSessionData.title = @"FCL的测试";
    /**
     *  UMSocialWXMessageTypeWeb
     UMSocialWXMessageTypeText,      //微信消息文本类型
     UMSocialWXMessageTypeImage,     //微信消息图片类型
     UMSocialWXMessageTypeApp,       //微信消息应用类型
     UMSocialWXMessageTypeWeb,       //微信消息网页类型
     GIF暂时不知道对应哪个类型
     */
    [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
    //应用分享类型点击分享内容后跳转到应用下载页面,下载地址自动抓取开发者在微信开放平台填写的应用地址,如果用户已经安装应用,则打开APP----如果APP没上架,就会打开默认的链接
    //    [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;

6.2.2 初始化QQ
设置手机QQ 的AppId,Appkey,和分享URL,需要

#import "UMSocialQQHandler.h"
    [UMSocialQQHandler setQQWithAppId:@"1105151305" appKey:@"EOR5DzF7XQskCBsz" url:@"http://www.umeng.com/social"];

6.2.3 初始化微博

打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。需要

#import "UMSocialSinaSSOHandler.h"
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"4217703336"
                                              secret:@"915ce2a4488cacdc26bd22894ad5e6d2"
                                         RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
    //2.3.1 直接分享——好直接,直接跳转到微博不需要跳出下面的actionsheet。
    /*
     [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"分享内嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){
     if (shareResponse.responseCode == UMSResponseCodeSuccess) {
     NSLog(@"分享成功!");
     }
     }];*/
    //2.3.2 分享到微博的时候,会自带一张图片(这个就是自带一张百度的图标)----这个图片会替换掉原来的GIF或者图片
    //    [[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"];

    //    [[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeVideo url:@"http://v.youku.com/v_show/id_XNjQ1NjczNzEy.html?f=21207816&ev=2"];

7.分享核心代码

//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法

    __weak typeof(self) weakSelf = self;
    NSString *shareText = @"分享本地GIF";
    UIImage *image = [UIImage imageNamed:@"海盗大白.jpg"];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"小炮兵" ofType:@"gif"];
    NSData *gifData = [NSData dataWithContentsOfFile:path];
    //需要往哪个平台分享,就在shraeToSnsNames:后面添加
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey:@"56d79f9b67e58e37050002ee"
                                      shareText:shareText
                                     shareImage:image
                                shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToWechatSession,UMShareToWechatTimeline,UMShareToQQ,UMShareToQzone,nil]
                                       delegate:self];
//    弹出横屏页面必须要先使用如下设置屏幕方向的代码,再弹出分享列表页面:
//    [UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];

8.第三方登陆核心代码

  8.1 QQ第三方登录(直接就可以登录了,成功)
- (void)LoginQQ
{
    UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQQ];

    snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){

        //          获取微博用户名、uid、token等

        if (response.responseCode == UMSResponseCodeSuccess) {

            UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToQQ];

            NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);

        }});
}

  8.2 微博第三方登录(无法进行登录)那是因为AppDelegate里面少了一句
//打开调试log的开关
//[UMSocialData openLog:YES];

- (void)LoginWeibo
{
     UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];

    snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){

        //          获取微博用户名、uid、token等

        if (response.responseCode == UMSResponseCodeSuccess) {

            UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina];

            NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);

        }});
}

如有错误,还请指正。有疏漏也可指出,共勉。


后续1

iOS9以后使用友盟会一直提示各种应用没有安装,但实际上却是安装的有。如果遇到这个问题,请点这里.

上一篇下一篇

猜你喜欢

热点阅读