集成友盟分享、登录、统计

前言

  • 友盟能实现分享功能,友盟+申请第三方账号的目的:
  • 进行分享、授权操作需要在第三方平台创建应用并提交审核,友盟默认提供了大多数平台的测试账号,但如果需要将分享、授权来源、分享到QQ、Qzone的icon更改为自己APP的应用,就需要自己申请第三方账号。
  • 友盟分享必须设置appKey,如果不设置appKey,分享也能成功,只不过你在友盟网站后台查看不到分享数量而已。因为appKey是和友盟网站后台关联的。你把这个连接给断了,怎么能统计分享数量等后台信息呢

(友盟分享一)基本功能集成

1.登录友盟

2.点击U-Share


Snip20160830_66.png

3.点击SDK及文档,选择苹果设备

Snip20160830_67.png

4.点击SDK下载

Snip20160830_69.png

5.选择你需要的版本,进行下载

Snip20160830_71.png

6.然后利用CocoaPods集成或手动集成,我们采取手动集成,而CocoaPods集成简单。

Snip20160830_89.png

7.创建xcode项目文件

8.解压SDK压缩包,将形如UMSocial_Sdk_x.x.x的文件夹拖入工程目录:


Snip20160830_72.png

9.添加系统需要的framework

Snip20160830_73.png

10.登录友盟

Snip20160830_74.png

11.找到U-Share,然后选择立即使用

Snip20160830_76.png

12.选择添加新应用

Snip20160830_77.png

13.填写应用基本信息。目的:获取AppKey

Snip20160830_78.png

14.获取了CoderZb-Share应用对应的唯一的AppKey

Snip20160830_79.png

15.在xcode的AppDelegate文件内设置你的AppKey


Snip20160830_80.png

16.在ViewController设置显示的默认UI,运行看效果

界面UI.png
101.56.gif

17.处理分享的信息.例如错误信息

处理错误信息.png

18.运行


101.57.gif

(友盟分享二)利用友盟单独集成微信分享

1.登录友盟

2.点击U-Share


Snip20160830_66.png

3.点击SDK及文档,选择苹果设备

Snip20160830_67.png

4.点击SDK下载

Snip20160830_69.png

5.选择你需要的版本,进行下载

Snip20160830_71.png

6.然后利用CocoaPods集成或手动集成,我们采取手动集成,CocoaPods集成简单。

Snip20160830_89.png

7.创建xcode项目文件

8.1解压SDK压缩包,将形如UMSocial_Sdk_Extra_Frameworks
目录下的Wechat文件夹拖到工程中

Snip20160830_93.png

8.2解压SDK压缩包,将形如UMSocial_Sdk_x.x.x的文件夹拖入工程目录:

Snip20160830_99.png

9.添加SDK依赖的系统库文件

Snip20160830_94.png

10.登录友盟

Snip20160830_74.png

11.找到U-Share,然后选择立即使用

Snip20160830_76.png

12.选择添加新应用

Snip20160830_96.png

13.填写应用基本信息。目的:获取AppKey

Snip20160830_97.png

14.获取了CoderZb-WeChat应用对应的唯一的AppKey

Snip20160830_98.png

15.申请第三方账号

Snip20160831_180.png

16.登录微信开放平台,并点击管理中心

Snip20160831_187.png

17.创建移动应用。由于有7天的审核时间,所以暂时无法获取到微信AppID及AppSecret。所以下面代码中用到的微信AppID及AppSecret就用友盟官方提供AppID及AppSecret。效果有什么不一样呢?分享的内容下面显示的平台不是微信,而是友盟给我们自定义的平台。

Snip20160831_183.png
Snip20160831_184.png

18.在xcode的AppDelegate文件内设置友盟的AppKey

#import "UMSocial.h"
  // 友盟的基本授权
    [UMSocialData setAppKey:@"57c5128467e58e23f5003d16"];
    // 处理分享错误
    [UMSocialData openLog:YES];
Snip20160831_189.png

19.设置微信AppId、appSecret.目的:添加微信及朋友圈到分享列表,如果不添加下面的代码,则分享列表中不会出现微信及朋友圈图标

#import "UMSocialWechatHandler.h"

//设置微信AppId、appSecret,分享url
    [UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"];
Snip20160831_190.png
  1. 添加系统回调方法
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }else{
    NSLog(@"分享成功");
        
    }
    return result;
}
Snip20160831_193.png

21.设置分享的内容


#import "UMSocialData.h"
#import "UMSocialSnsService.h"

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    //如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法
    // shareToSnsNames:设置为nil,会把所有的分享平台显示出来。
    [UMSocialData defaultData].extConfig.title = @"分享的title";
    [UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey:@"57c5480de0f55a8c5b001f32"
                                      shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
                                     shareImage:[UIImage imageNamed:@"icon"]
                                shareToSnsNames:nil
                                       delegate:nil];
    UIView *view = [[UIView alloc]init];
    view.frame = CGRectMake(100, 150, 200, 200);
    view.backgroundColor = [UIColor redColor];
    [self.view addSubview:view];
    
    
}
Snip20160831_192.png

22.使用友盟社会化组件的SSO功能,需要按照文档要求在xcode设置url scheme,这样跳转到别的页面之后,点击某个按钮返回到最初的app时,才会通过代理方法拿到返回的信息,不设置url scheme,返回时,拿不到任何信息.


Snip20160830_108.png

23.运行程序,点击微信好友,提示错误

-canOpenURL: failed for URL: "weixin://app/wxd930ea5d5a258f4f/" 
- error: "This app is not allowed to query for scheme weixin"

错误原因:如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。同样在info.plist增加:

<key>LSApplicationQueriesSchemes</key><array> <!-- 微信 URL Scheme 白名单--> <string>wechat</string> <string>weixin</string> <!-- 新浪微博 URL Scheme 白名单--> <string>sinaweibohd</string> <string>sinaweibo</string> <string>sinaweibosso</string> <string>weibosdk</string> <string>weibosdk2.5</string> <!-- QQ、Qzone URL Scheme 白名单--> <string>mqqapi</string> <string>mqq</string> <string>mqqOpensdkSSoLogin</string> <string>mqqconnect</string> <string>mqqopensdkdataline</string> <string>mqqopensdkgrouptribeshare</string> <string>mqqopensdkfriend</string> <string>mqqopensdkapi</string> <string>mqqopensdkapiV2</string> <string>mqqopensdkapiV3</string> <string>mqzoneopensdk</string> <string>wtloginmqq</string> <string>wtloginmqq2</string> <string>mqqwpa</string> <string>mqzone</string> <string>mqzonev2</string> <string>mqzoneshare</string> <string>wtloginqzone</string> <string>mqzonewx</string> <string>mqzoneopensdkapiV2</string> <string>mqzoneopensdkapi19</string> <string>mqzoneopensdkapi</string> <string>mqqbrowser</string> <string>mttbrowser</string> <!-- 支付宝 URL Scheme 白名单--> <string>alipay</string> <string>alipayshare</string> <!-- 人人 URL Scheme 白名单--> <string>renrenios</string> <string>renrenapi</string> <string>renren</string> <string>renreniphone</string> <!-- 来往 URL Scheme 白名单--> <string>laiwangsso</string> <!-- 易信 URL Scheme 白名单--> <string>yixin</string> <string>yixinopenapi</string> <!-- instagram URL Scheme 白名单--> <string>instagram</string> <!-- whatsapp URL Scheme 白名单--> <string>whatsapp</string> <!-- line URL Scheme 白名单--> <string>line</string> <!-- Facebook URL Scheme 白名单--> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string></array>

24.效果

   // 通过一个红色view,用来验证确实是否回到了app中
    UIView *view = [[UIView alloc]init];
    view.frame = CGRectMake(100, 150, 200, 200);
    view.backgroundColor = [UIColor redColor];
    [self.view addSubview:view];

分享到微信好友

101.58.gif

分享到朋友圈

101.59.gif

分享到微信收藏

101.60.gif

(友盟分享三)利用友盟单独集成新浪微博

1.登录友盟

2.点击U-Share


Snip20160830_66.png

3.点击SDK及文档,选择苹果设备

Snip20160830_67.png

4.点击SDK下载

Snip20160830_69.png

5.选择你需要的版本,进行下载

Snip20160830_71.png

6.然后利用CocoaPods集成或手动集成,我们采取手动集成,CocoaPods集成简单。

Snip20160830_89.png

7.创建xcode项目文件

8.1解压SDK压缩包,将形如UMSocial_Sdk_Extra_Frameworks
目录下的SinaSSO文件夹拖到工程中

Snip20160830_111.png

8.2解压SDK压缩包,将形如UMSocial_Sdk_x.x.x的文件夹拖入工程目录:

Snip20160830_113.png

9.添加SDK依赖的系统库文件m并在other linker flags增加-ObjC 选项

Snip20160830_116.png
Snip20160830_117.png

10.登录友盟

Snip20160830_74.png

11.找到U-Share,然后选择立即使用

Snip20160830_76.png

12.选择添加新应用

Snip20160830_118.png

13.填写应用基本信息。目的:获取AppKey

Snip20160830_120.png

14.获取了CoderZb-Sina应用对应的唯一的AppKey

Snip20160830_121.png

15.申请第三方账号,登录新浪微博开放平台(点击链接)

  • 进行分享、授权操作需要在第三方平台创建应用并提交审核,友盟默认提供了大多数平台的测试账号,但如果需要将分享、授权来源、分享到QQ、Qzone的icon更改为自己APP的应用,就需要自己申请第三方账号。

点击链接


Snip20160831_146.png

移动应用


Snip20160831_153.png

立即接入


Snip20160831_154.png

创建新应用


Snip20160831_155.png

基本信息


Snip20160831_171.png

高级信息


Snip20160831_168.png

我的应用


Snip20160831_170.png

16.配置URL schemes (使用友盟社会化组件的微博SSO功能,需要按照文档要求在xcode设置url scheme)

Snip20160831_172.png

17.应用跳转(SSO等)
如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。
同样在info.plist增加:

<key>LSApplicationQueriesSchemes</key><array> <!-- 微信 URL Scheme 白名单--> <string>wechat</string> <string>weixin</string> <!-- 新浪微博 URL Scheme 白名单--> <string>sinaweibohd</string> <string>sinaweibo</string> <string>sinaweibosso</string> <string>weibosdk</string> <string>weibosdk2.5</string> <!-- QQ、Qzone URL Scheme 白名单--> <string>mqqapi</string> <string>mqq</string> <string>mqqOpensdkSSoLogin</string> <string>mqqconnect</string> <string>mqqopensdkdataline</string> <string>mqqopensdkgrouptribeshare</string> <string>mqqopensdkfriend</string> <string>mqqopensdkapi</string> <string>mqqopensdkapiV2</string> <string>mqqopensdkapiV3</string> <string>mqzoneopensdk</string> <string>wtloginmqq</string> <string>wtloginmqq2</string> <string>mqqwpa</string> <string>mqzone</string> <string>mqzonev2</string> <string>mqzoneshare</string> <string>wtloginqzone</string> <string>mqzonewx</string> <string>mqzoneopensdkapiV2</string> <string>mqzoneopensdkapi19</string> <string>mqzoneopensdkapi</string> <string>mqqbrowser</string> <string>mttbrowser</string> <!-- 支付宝 URL Scheme 白名单--> <string>alipay</string> <string>alipayshare</string> <!-- 人人 URL Scheme 白名单--> <string>renrenios</string> <string>renrenapi</string> <string>renren</string> <string>renreniphone</string> <!-- 来往 URL Scheme 白名单--> <string>laiwangsso</string> <!-- 易信 URL Scheme 白名单--> <string>yixin</string> <string>yixinopenapi</string> <!-- instagram URL Scheme 白名单--> <string>instagram</string> <!-- whatsapp URL Scheme 白名单--> <string>whatsapp</string> <!-- line URL Scheme 白名单--> <string>line</string> <!-- Facebook URL Scheme 白名单--> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string></array>

18.设置友盟Appkey

#import "UMSocial.h"

 // 友盟的基本授权
    [UMSocialData setAppKey:@"57c5128467e58e23f5003d16"];
    // 处理分享错误
    [UMSocialData openLog:YES];
Snip20160831_173.png

19 .配置新浪微博Appkey(不是友盟Appkey)

 //第一个参数为新浪appkey,第二个参数为新浪secret,第三个参数是新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。
   
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"987580732"
                                              secret:@"433c734aeb2660e10e4f97f10ace9481"
                                         RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
Snip20160831_176.png

20.添加系统回调方法

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }else{
    NSLog(@"分享成功");
        
    }
    return result;
}
Snip20160831_177.png

21.设置分享的内容

Snip20160831_178.png

演示

101.64.gif

(友盟分享四)利用友盟单独集成QQ和QQ空间

1.登录友盟

2.点击U-Share


Snip20160830_66.png

3.点击SDK及文档,选择苹果设备

Snip20160830_67.png

4.点击SDK下载

Snip20160830_69.png

5.选择你需要的版本,进行下载

Snip20160830_71.png

6.然后利用CocoaPods集成或手动集成,我们采取手动集成,CocoaPods集成简单。

Snip20160830_89.png

7.创建xcode项目文件

8.1解压SDK压缩包,将形如UMSocial_Sdk_Extra_Frameworks
目录下的TencentOpenAPI文件夹拖到工程中

Snip20160830_128.png

8.2解压SDK压缩包,将形如UMSocial_Sdk_x.x.x的文件夹拖入工程目录:

Snip20160830_129.png

9.添加SDK依赖的系统库文件

Snip20160830_130.png

10.登录友盟

Snip20160830_74.png

11.找到U-Share,然后选择立即使用

Snip20160830_76.png

12.选择添加新应用

Snip20160830_132.png

13.填写应用基本信息。目的:获取AppKey

Snip20160830_133.png

14.获取了CoderZb-QQandZone应用对应的唯一的AppKey

Snip20160830_134.png

15.申请第三方账号,即腾讯开放平台(点击链接),选择移动应用,填写相关应用信息并提交审核。

Snip20160901_200.png
Snip20160901_199.png
Snip20160901_196.png
Snip20160901_197.png

经过一天的时间,终于审核通过了

Snip20160901_253.png

16.应用跳转(SSO等).如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。在info.plist增加

<key>LSApplicationQueriesSchemes</key><array> <!-- 微信 URL Scheme 白名单--> <string>wechat</string> <string>weixin</string> <!-- 新浪微博 URL Scheme 白名单--> <string>sinaweibohd</string> <string>sinaweibo</string> <string>sinaweibosso</string> <string>weibosdk</string> <string>weibosdk2.5</string> <!-- QQ、Qzone URL Scheme 白名单--> <string>mqqapi</string> <string>mqq</string> <string>mqqOpensdkSSoLogin</string> <string>mqqconnect</string> <string>mqqopensdkdataline</string> <string>mqqopensdkgrouptribeshare</string> <string>mqqopensdkfriend</string> <string>mqqopensdkapi</string> <string>mqqopensdkapiV2</string> <string>mqqopensdkapiV3</string> <string>mqzoneopensdk</string> <string>wtloginmqq</string> <string>wtloginmqq2</string> <string>mqqwpa</string> <string>mqzone</string> <string>mqzonev2</string> <string>mqzoneshare</string> <string>wtloginqzone</string> <string>mqzonewx</string> <string>mqzoneopensdkapiV2</string> <string>mqzoneopensdkapi19</string> <string>mqzoneopensdkapi</string> <string>mqqbrowser</string> <string>mttbrowser</string> <!-- 支付宝 URL Scheme 白名单--> <string>alipay</string> <string>alipayshare</string> <!-- 人人 URL Scheme 白名单--> <string>renrenios</string> <string>renrenapi</string> <string>renren</string> <string>renreniphone</string> <!-- 来往 URL Scheme 白名单--> <string>laiwangsso</string> <!-- 易信 URL Scheme 白名单--> <string>yixin</string> <string>yixinopenapi</string> <!-- instagram URL Scheme 白名单--> <string>instagram</string> <!-- whatsapp URL Scheme 白名单--> <string>whatsapp</string> <!-- line URL Scheme 白名单--> <string>line</string> <!-- Facebook URL Scheme 白名单--> <string>fbapi</string> <string>fb-messenger-api</string> <string>fbauth2</string> <string>fbshareextension</string></array>

17.在Info.plist文件中配置如下属性

Snip20160830_139.png

18.配置URL schemes

Snip20160901_201.png

19.友盟的基本授权

// 友盟的基本授权
    [UMSocialData setAppKey:@"57c4e6aee0f55a5286001ec9"];
    // 处理分享错误
    [UMSocialData openLog:YES];
Snip20160830_142.png

20.添加QQ及Qzone到分享列表

    #import "UMSocialQQHandler.h"

  
 // 在AppDelegate应用入口方法打开集成手机QQ、Qzone开关
    [UMSocialQQHandler setQQWithAppId:@"1105588839" appKey:@"zuryj7sDwQW55x3Y" url:@"http://www.umeng.com/social"];
Snip20160901_202.png

21.添加系统回调方法


- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }else{
    NSLog(@"分享成功");
        
    }
    return result;
}
Snip20160901_203.png

22.设置分享的内容

#import "UMSocialData.h"
#import "UMSocialSnsService.h"

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    //如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法
    // shareToSnsNames:设置为nil,会把所有的分享平台显示出来。
    [UMSocialData defaultData].extConfig.title = @"分享的title";
    [UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
[UMSocialData defaultData].extConfig.qzoneData.url = @"http://baidu.com";
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey:@"57c5480de0f55a8c5b001f32"
                                      shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
                                     shareImage:[UIImage imageNamed:@"icon"]
                                shareToSnsNames:nil
                                       delegate:nil];
    UIView *view = [[UIView alloc]init];
    view.frame = CGRectMake(100, 150, 200, 200);
    view.backgroundColor = [UIColor redColor];
    [self.view addSubview:view];
    
    
}
Snip20160901_204.png

效果

分享到qq好友

101.78.gif

分享到qq空间

101.79.gif
[分享-LS](https://pan.baidu.com/s/1qYamWXm 密码 fw2d)

注意:

  • 1.提示这个警告是,你在友盟里面友盟其他的api时,先得使用友盟的appkey

**Umeng SocialSDK --- You haven't set the Umeng Appkey,
please use [UMSocialData setAppKey:@"507fcab25270157b37000010"]; 
before you use other APIs.**
  • 2.由于iOS9引入了AppTransportSecurity(ATS)特性,要求App访问的网络使用HTTPS协议,如果不做特殊设置,http请求会失败,所以需要开发者在工程中增加设置以便可以发送http请求

拓展1:OAuth2.0和SSO授权的区分

-OAuth2.0:

  • 一种安全的登陆协议,用户的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该访问令牌访问资源服务器的资源。由于用户的账号密码并不与本APP直接交互,而是与官方服务器交互,因而它是安全的。

  • SSO

  • 全称:Single Sign On,用户只需登陆一次即可访问相互信任的子系统。用户访问系统1时,登陆成功后会返回一个ticket,当用户访问系统2时,会把ticket带上,待验证合法后即可访问系统2。听起来跟cookie有点像,没错,Web-SSO便有基于cookie的实现方案。
      以新浪微博为例,很多手机APP在点击新浪授权时,会跳到新浪客户端的登陆页面,这里就用到SSO技术啦。在本APP授权新浪微博时,会先检测手机是否安装了新浪微博客户端。


拓展2:

URL Scheme

为方便app之间互相调用而设计的。你可以通过一个类似URL的链接,通过系统的OpenURl来打开该app,并可以传递一些参数。每个URL必须能唯一标识一个APP,如果你设置的URL与别的APP的URL冲突,此时,你的APP不一定会被调用起来,原因是当APP在安装的时候就已经在系统里面注册了此APP的URL Scheme,如果你的一致但是是后安装的,那么系统不会调用你的APP,因为你的APP设置的URL scheme被覆盖了。
当然系统的APP的URL Scheme是优先级高的,不用想着能覆盖系统APP的URL Scheme的注册调用。

URL Scheme有什么作用:

iOS系统里面APP之间是相互隔离的,不像Android,每个组件都可以作为一个独立的功能被其他APP调用,但是,IOS系统里面也需要完成类似于三方功能如支付、搜索跳转、导航等等跨APP的功能,怎么实现呢,苹果就使用了URL Scheme来实现了这个功能。通过各个APP设计的符合苹果的统一规范的URL Scheme,系统就会自动去调用相关的APP来完成你的请求。
比如:我们的APP需要使用支付宝的三方支付功能、我的APP需要使用微信分享好的文章,那么此时就可以通过URL Scheme来传递这些数据到支付宝APP或者微信APP,系统会通过这些APP的URL Scheme来调起这些APP,完成你所需要做的跨APP的功能。


(友盟登录)

  • 注:相比于友盟分享三的代码,仅仅增加了增加了/******/中的内容,所以要集成友盟登录,必须先写友盟分享3的代码

AppDelegate.m文件

#import "AppDelegate.h"
#import "UMSocial.h"
#import "UMSocialSinaSSOHandler.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    // 友盟的基本授权
    [UMSocialData setAppKey:@"57c5128467e58e23f5003d16"];
    // 处理分享错误
    [UMSocialData openLog:YES];

    
    //第一个参数为新浪appkey,第二个参数为新浪secret,第三个参数是新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。
   
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"987580732"
                                              secret:@"433c734aeb2660e10e4f97f10ace9481"
                                         RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
    
    return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }else{
    NSLog(@"分享成功");
        
    }
    return result;
}

@end

ViewController.m文件



#import "ViewController.h"
#import "UMSocialData.h"
#import "UMSocialSnsService.h"
#import "UMSocial.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
   }

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    //如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法
    // shareToSnsNames:设置为nil,会把所有的分享平台显示出来。
    [UMSocialData defaultData].extConfig.title = @"分享的title";
    [UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
    [UMSocialSnsService presentSnsIconSheetView:self
                                         appKey:@"57c5480de0f55a8c5b001f32"
                                      shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
                                     shareImage:[UIImage imageNamed:@"icon"]
                                shareToSnsNames:nil
                                       delegate:nil];
    UIView *view = [[UIView alloc]init];
    view.frame = CGRectMake(100, 150, 200, 200);
    view.backgroundColor = [UIColor redColor];
    [self.view addSubview:view];
    /**************************************************************************************/
    UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
    
    snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
        
        //          获取微博用户名、uid、token等
        
        if (response.responseCode == UMSResponseCodeSuccess) {
            
            NSDictionary *dict = [UMSocialAccountManager socialAccountDictionary];
            UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:snsPlatform.platformName];
            NSLog(@"\nusername = %@,\n usid = %@,\n token = %@ iconUrl = %@,\n unionId = %@,\n thirdPlatformUserProfile = %@,\n thirdPlatformResponse = %@ \n, message = %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL, snsAccount.unionId, response.thirdPlatformUserProfile, response.thirdPlatformResponse, response.message);
            
        }});
    
 /**************************************************************************************/
}
@end

运行结果

101.65.gif

[LS](https://pan.baidu.com/s/1mii2Bs0 密码 dqh2)

(友盟统计)

1.登录友盟
2.点击U-App


3.选择SDK及文档

Snip20160901_206.png
Snip20160901_213.png

4.点击步骤2中的立即使用

Snip20160901_207.png

5.添加新应用

Snip20160901_208.png

6.填写应用基本信息


Snip20160901_209.png

7.获取CoderZb-Statistics对应的唯一的AppKey


Snip20160901_210.png

8.回到步骤3,选择下载统计SDK

Snip20160901_212.png
Snip20160901_214.png

9.创建xocde项目

10.导入sdk

Snip20160901_216.png

11..添加友盟统计需要的framework

Snip20160901_217.png

12.配置AppDelegate.m文件

    #import "UMMobClick/MobClick.h"

    UMConfigInstance.appKey = @"57c7854867e58e4dc6000fc0";
    UMConfigInstance.channelId = @"App Store";
    UMConfigInstance.eSType = E_UM_GAME; //仅适用于游戏场景,应用统计不用设置
   [MobClick startWithConfigure:UMConfigInstance];//配置以上参数后调用此方法初始化SDK!
Snip20160901_218.png

13.设置发送策略为启动app就发送.

  • 如果不设置为BATCH,则发送到后台进行统计的时间不是确定的[已验证]
UMConfigInstance.ePolicy = BATCH;// 启动app就发送
101.68.gif

14.页面的统计


#import <UMMobClick/MobClick.h>
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [MobClick beginLogPageView:@"PageOne"];//("PageOne"为页面名称,可自定义)
}
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [MobClick endLogPageView:@"PageOne"];
}
Snip20160901_230.png

15.添加事件

  • 添加计数事件


    Snip20160901_220.png
Snip20160901_222.png
Snip20160901_223.png
  • 添加计算事件
Snip20160901_225.png
Snip20160901_227.png

16.xcode中实现计数事件和计算事件


#import <UMMobClick/MobClick.h>
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
 NSLog(@"要在这个界面统计");
    // 计数事件
    [MobClick event:@"touch"];
    // 计算事件
    [MobClick event:@"Calcu" attributes:@{@"book" : @"Swift Fundamentals"} counter:110];
}
Snip20160901_229.png

17.开启日志(例如查看计数事件,计算事件页面的统计的日志)

// 开启日志查看。如果不设置,在xocde控制台将不会输出日志内容(内容包括计数事件,页面的统计)
[MobClick setLogEnabled:YES];

101.69.gif

18.在友盟后台查看计数事件和计算事件

101.70.gif

19.集成测试

Snip20160901_236.png
  • 注册测试设备


    Snip20160901_241.png
  • 复制代码到xcode中。目的:获得打印出的内容,然后粘贴到"设备识别信息选项"

Snip20160901_243.png
  • 获取设备识别信息选项(一定要真机运行xcode项目)


Class cls = NSClassFromString(@"UMANUtil");
    SEL deviceIDSelector = @selector(openUDIDString);
    NSString *deviceID = nil;
    if(cls && [cls respondsToSelector:deviceIDSelector]){
        deviceID = [cls performSelector:deviceIDSelector];
    }
    NSData* jsonData = [NSJSONSerialization dataWithJSONObject:@{@"oid" : deviceID}                                                   options:NSJSONWritingPrettyPrinted                                                     error:nil];
    NSLog(@"%@", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);
Snip20160901_250.png
  • 确定


    Snip20160901_252.png
  • 创建成功


    Snip20160901_248.png

20.开启实时发送


UMConfigInstance.ePolicy = REALTIME;//实时发送  只在“集成测试”设备的DEBUG模式下有效
Snip20160901_249.png

21.运行到真机设备中,并在友盟后台的集成测试选项卡中查看

101.71.gif

[统计-LS](https://pan.baidu.com/s/1nvLGmlb 密码 jqry)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容