友盟的常见使用----三方登陆、分享和“埋点”(友盟统计)
- 友盟,专业的移动开发者服务平台,为移动开发者提供免费的应用统计分析、社交分享、消息推送、自动更新、在线参数、移动推广效果分析、微社区等,下面是要分享的内容
- 第三方登录流程
- 友盟支持第三方登录的平台
- 友盟社会化分享支持的平台
- 集成友盟社会化组件流程
- 友盟社会化SDK集成流程
- 注意事项
- 示例代码
第三方登录流程
移动应用授权效果图如下:
友盟支持第三方登录的平台
新浪微博、腾讯微博、QQ、QQ空间、微信、人人
友盟社会化分享支持的平台
- 国内平台:微信(微信好友及微信朋友圈)、QQ、Qzone、新浪微博、腾讯微博、人人网、豆瓣、短信、邮件、有道云笔记、来往、易信
- 国外平台:Facebook、Twitter、Instagram、EverNote、Pocket、Pinterest、Linkedin、G+
集成友盟社会化组件流程
注册友盟账号
- 登陆友盟官网,在我的产品页面添加新应用,然后获取到Appkey
申请第三方账号
- 参照文档:申请第三方账号
绑定第三方账号
- 参照文档:绑定第三方账号到友盟后台
下载SDK
- 进入下载SDK页面(点击链接),勾选自己需要的功能进行下载
友盟社会化SDK集成流程
配置AndroidManifest.xml
- 配置权限、友盟AppKey、分享的相关组件,详情参考文档
复制指定平台的libs和res到项目中
- 每个平台对应的jar包和资源文件,详情参考文档
在代码中设置需要分享的平台和内容
- 传递平台appId/appKey参数并添加指定平台和分享的媒体内容
注意事项
- 使用第三方登录的时候需要进行签名打包,不然在新浪SSO授权、微信分享会出现异常。
- 微信登录需要在微信开放平台申请开发者认证获取登录权限,不然无法完成授权
示例代码
#
import
"UMSocial.h"
02.
#
import
"UMSocialWechatHandler.h"
03.
#
import
"UMSocialQQHandler.h"
04.
#
import
"UMSocialSinaHandler.h"
05.
06.
//友盟统计
07.
//友盟统计分析是一款专业的移动应用统计分析工具,致力于为开发者提供实时、稳定的移动应用统计分析服务,帮助开发者更好地了解用户、优化产品以及提升转化率。友盟统计分析客户端,可以方便开发者查看应用数据,随时随地掌握应用的运营状态。
08.
[MobClickstartWithAppkey:kUMengKeyreportPolicy:SEND_ON_EXITchannelId:nil];
/开启友盟统计
09.
[MobClick setAppVersion:XcodeAppVersion];
10.
[MobClick checkUpdate];
11.
12.
13.
//友盟授权
14.
[UMSocialData setAppKey:kUMengKey];
15.
//设置微信AppId,设置分享url,默认使用友盟的网址
16.
[UMSocialWechatHandler setWXAppId:kWXAppID appSecret:kWXAppKey url:@
"http://www.yshow.net"
];
17.
//打开新浪微博的SSO开关
18.
[UMSocialSinaHandler openSSOWithRedirectURL:@
"http://www.yshow.net"
];
19.
//设置分享到<a href="http://www.it165.net/qq/qqkj/" target="_blank" class="keylink">QQ空间</a>的应用Id,和分享url 链接
20.
[UMSocialQQHandler setQQWithAppId:kQQAppID appKey:kQQAppKey url:@
"http://www.yshow.net"
];
21.
//设置支持没有客户端情况下使用SSO授权
22.
[UMSocialQQHandler setSupportWebView:YES];
23.
24.
/**
25.
这里处理新浪微博SSO授权之后跳转回来,和微信分享完成之后跳转回来
26.
*/
27.
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
28.
{
29.
return
[UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];
30.
}
31.
32.
/**
33.
这里处理新浪微博SSO授权进入新浪微博客户端后进入后台,再返回原来应用
34.
*/
35.
- (
void
)applicationDidBecomeActive:(UIApplication *)application
36.
{
37.
[UMSocialSnsService applicationDidBecomeActive];
38.
}
01.
#
import
"UMSocial.h"
02.
//<a href="http://www.it165.net/qq/" target="_blank" class="keylink">qq</a>登录
03.
- (
void
)<a href=
"http://www.it165.net/qq/"
target=
"_blank"
class
=
"keylink"
>qq</a>BtnClick:(UIButton *)btn
04.
{
05.
NSString *platformName = [UMSocialSnsPlatformManager getSnsPlatformString:UMSocialSnsTypeMobileQQ];
06.
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQQ];
07.
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
08.
NSLog(@
"login response is %@"
,response);
09.
//获取微博用户名、uid、token等
10.
if
(response.responseCode == UMSResponseCodeSuccess) {
11.
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:platformName];
12.
NSLog(@
"username is %@, uid is %@, token is %@,iconUrl is %@"
,snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
13.
}
14.
});
15.
}
16.
//新浪登录
17.
- (
void
)sinaBtnClick:(UIButton *)btn
18.
{
19.
NSString *platformName = [UMSocialSnsPlatformManager getSnsPlatformString:UMSocialSnsTypeSina];
20.
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
21.
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
22.
NSLog(@
"response is %@"
,response);
23.
if
(response.responseCode == UMSResponseCodeSuccess) {
24.
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:platformName];
25.
NSLog(@
"=========%@"
,snsAccount.accessToken);
26.
}
27.
});
28.
}
29.
30.
//实现回调方法
31.
-(
void
)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
32.
{
33.
if
(response.viewControllerType == UMSViewControllerOauth) {
34.
NSLog(@
"didFinishOauthAndGetAccount response is %@"
,response);
35.
}
36.
}
01.
//分享
02.
typedef
enum
03.
{
04.
ShareQZone,
05.
ShareQQFriend,
06.
ShareWeiXinFriend,
07.
ShareQQWB,
08.
ShareSinaWB,
09.
}ShareMode;
10.
11.
#
import
"UMSocialSnsService.h"
12.
#
import
"UMSocialSnsPlatformManager.h"
13.
#
import
"UMSocial.h"
14.
15.
- (
void
)shareFootViewSureBtnDidClick:(YSShareFootView *)view index:(ShareMode)index
16.
{
17.
NSString *shareText = @
"wallpaper papehome。 http://www.wallPaper.com/social"
; //分享内嵌文字
18.
UIImage *shareImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:self.sharedImgUrl];
//分享内嵌图片
19.
20.
//如果得到分享完成回调,需要设置delegate为self
21.
// @param snsNames 你要分享到的sns平台类型,该NSArray值是`UMSocialSnsPlatformManager.h`定义的平台名的字符串常量,有UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms等
22.
23.
[UMSocialSnsService presentSnsIconSheetView:self appKey:kUMengKey shareText:shareText shareImage:shareImage shareToSnsNames:@[UMShareToQzone,UMShareToQQ,UMShareToWechatSession,UMShareToTencent,UMShareToSina] delegate:self];
24.
return
;
25.
}
26.
27.
//下面得到分享完成的回调
28.
-(
void
)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
29.
{
30.
NSLog(@
"didFinishGetUMSocialDataInViewController with response is %@"
,response);
31.
//根据`responseCode`得到发送结果,如果分享成功
32.
if
(response.responseCode == UMSResponseCodeSuccess)
33.
{
34.
//得到分享到的微博平台名
35.
NSLog(@
"share to sns name is %@"
,[[response.data allKeys] objectAtIndex:
0
]);
36.
}
37.
}
友盟的常见使用----三方登陆、分享和“埋点”(友盟统计)相关推荐
- umeng(友盟)实现第三方登录和分享详解之登录详解
一.简单介绍 因为一个平台一个平台进行弄太麻烦,也不够统一,所以领导选择了umeng(我的内心是拒绝的),umeng的文档写的便于查找,但是比较分散,对于比较熟悉的很好用,没接触过umeng的肯定一脸 ...
- flutter友盟分享_Flutter中使用友盟统计
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 可以用来加载 Html 页面,以实现 Android 中 WebView 或者 是 iOS 中的 UIWeb ...
- 方案系列--多个应用同时接入Google和Facebook三方登陆互联互通解决方案
目录 背景 多App之间用户互通场景分析 本文可以帮到你什么 国内三方登陆常见方案
- Android三方登陆之QQ,微信,微博登录及注意事项
简介 在我们的应用中,一般都有三方登录这个功能,对于这个常用的功能,我们一般会有如下处理方式 导入三方sdk,按照文档开发 使用如ShareSDK类三方组件来实现 ShareSDK 官方Demo: T ...
- #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
[关于漂流日记] 一个日记本,通过最传统的方式--邮寄行走在全国各地,互不相识的人用手写笔记.照片.涂鸦等各种不同的形式记录,最后在回到它的起点.这就是漂流日记. #中国IT界的第一本漂流日记 传递I ...
- 用友通ERP客户端报无法登陆错
用友通ERP客户端报"无法登陆"错 排除系统版本错,要求windows xp professional sp2:client.dll文件错误后 请确认 c:/windows/sys ...
- 战地5服务器不显示ping怎么回事,战地5常见bug解决办法分享
战地5游戏想现在已经全面开放,作为一款刚刚公测推出的游戏,现在在游戏中难免会存在一些bug,不少玩家都 遇到过各种各样的bug.遇到bug怎么办?iefans小编整理了当前最热门的几个bug进行了汇总 ...
- Java前后端分离第三方登录_网站前后端分离情况下如何实现QQ微信等第三方登陆-Fun言...
前言 最近在弄第三方登录,实现起来很简单,就是调几个接口获取个人信息即可,详细了解:maven项目整合QQauth2.0第三方登录详细说明,然后因为本网站是前后端分离的,所以不能再回调接口那里直接跳转 ...
- 【小程序】常见系统API | 页面分享 | 位置信息 | 本地存储
文章目录 常见系统API 页面分享的基本介绍 设备信息和位置信息 小程序Storage存储 常见系统API 页面分享的基本介绍 分享是小程序扩散的一种重要方式,小程序中有两种分享方式: 方式一:点击右 ...
最新文章
- 微软CEO致雅虎董事会的最后通牒信
- iOS 11开发教程(十七)iOS11应用视图之使用按钮接收用户输入
- WINCE支持的波斯语的codepages
- 实验7-3-3 统计大写辅音字母 (15分)
- android socket 发送byte_如何正确地创建和销毁网络通讯程序中的Socket类的对象实例...
- 剑指 Offer 35. 复杂链表的复制(哈希/衍生拆分图解)
- python coding utf-8_【转】怎么在Python里使用UTF-8编码
- (转) 淘淘商城系列——解决KindEditor上传图片浏览器兼容性问题
- python中的for语句可以在任意序列_python在循环内任意增加迭代器
- java、js的编码、解码
- 精美Java 图书管理系统
- xvidcore-1.3.2编译
- STVD环境下开发STM8,如何查看工程占用的Flash、EEPROM、RAM的情况
- win10 开机自动启动脚本
- Vue中如何实现Excel导入导出
- Bluetooth Battery Monitor(蓝牙电量监控软件)
- 互联网产品的需求分析
- 获取某一年指定自然周的开始时间和结束时间
- java 新功能_最新的Java版本101有什么新功能?
- HART475艾默生手操器维修注意事项及指标特点