新手可以来看下,如果有错误可以告诉我哈。。。
1.
1.1 注册友盟账号
登陆友盟官网,在我的产品页面添加新应用,然后获取到Appkey。
1.2 申请第三方账号
参照文档:申请第三方账号
1.3 绑定第三方账号
参照文档:绑定第三方账号到友盟后台
1.4 下载SDK
进入下载SDK页面(点击链接),勾选自己需要的功能进行下载
2.1 为什么要申请第三方账号
进行分享、授权操作需要在第三方平台创建应用并提交审核,友盟默认提供了大多数平台的测试账号,但如果需要将分享、授权来源、分享到QQ、Qzone的icon更改为自己APP的应用,就需要自己申请第三方账号。
2.2 新浪微博
登录新浪微博开放平台(点击链接),填写相关应用信息并上传icon图片。注意修改安全域名为sns.whalecloud.com同时设置授权回调页为http://sns.whalecloud.com/sina2/callback安全域名设置在应用信息-->基本信息,具体位置参考下图
授权回调页、取消授权回调页设置在应用信息-->高级信息,具体位置参考下图
安全域名的修改需要二次审核通过才生效,授权回调页修改即时生效
2.3 微信
登录微信开放平台(点击链接),填写相关应用信息,审核通过后获取到微信AppID及AppSecret,如果需要微信登录功能,需要申请微信登录权限
2.4 QQ及Qzone
QQ及Qzone使用同一个AppID及Appkey,登录腾讯开放平台(点击链接) ,选择移动应用,填写相关应用信息并提交审核,未审核前通过只能使用测试账号,添加测试账号方法如下: 选择用户能力-->进阶社交能力-->应用调试者,添加测试账号必须在申请者好友列表中,如下图
2.5 人人网
登录人人开放平台(点击链接) ,填写相关应用信息,同时填写应用根域名为sns.whalecloud.com具体位置: 基本信息-->应用根域名 如图
2.6 豆瓣
登录豆瓣开放平台(点击链接),创建应用并填写相关应用信息,注意权限必须选择广播,同时填写回调地址为http://sns.whalecloud.com/douban/callback
目前需要在友盟后台绑定的第三方账号为:新浪微博、腾讯微博、人人网、豆瓣、Qzone,其余平台如微信、QQ直接在代码中设置
绑定地址:http://umeng.com/apps
登录友盟网站->左上角选择你们的产品->组件->社会化组件->设置
3.1 短链接开关
短链接开关只对新浪微博、腾讯微博、人人网、豆瓣四个平台有效,开启短链接开关,分享文案中附加的链接会被转码,同时可以统计到分享回流率(点击链接的次数),关闭短链接开关则无法统计,短链接开关默认为关闭状态
3.2 文字截断开关
文字截断开关只对新浪微博、腾讯微博、人人网、豆瓣四个平台有效,同时只对使用自定义分享编辑页或没有分享编辑页用户有效,当分享文案超出字数限制时自动截断,开关状态默认关闭
1.1 手动集成
1.1.1 下载U-Share SDK
通过iOS社会化组件下载页面选择所需的社交平台后进行下载。
1.1.1.1 SDK目录介绍
1. Document - U-Share SDK文档
2. UMSocialDemo - U-Share SDK Demo(如点选下载)
3. UMSocial - U-Share SDK核心目录
UMSocialSDK - U-Share SDK核心framework
UMSocialUI - U-Share 分享UI资源、分享面板等
SocialLibraries - 所选择下载的第三方平台SDK及U-Share链接库
1.1.2 加入U-Share SDK
1.1.2.1 将U-Share SDK添加到工程
1.1.2.2 添加项目配置
在Other Linker Flags加入-ObjC 如果objc --- 一般这个不用进行更改。
1.1.2.3 加入依赖系统库
加入以下系统库
libsqlite3.tbd
1.1.2.4 添加平台相应的依赖库
根据集成的不同平台加入相关的依赖库,未列出平台则不用添加 添加方式:选中项目Target -> Linked Frameworks and Libraries列表中添加
平台依赖系统库
微信
SystemConfiguration.framework
CoreTelephony.framework
libsqlite3.tbd
libc++.tbd
libz.tbd
SystemConfiguration.framework
libc++.tbd
新浪微博
SystemConfiguration.framework
CoreTelephony.framework
ImageIO.framework
libsqlite3.tbd
libz.tbd
CoreData.framework
注:Twitter平台加入后需添加TwitterKit.framework/Resources/TwitterKitResources.bundle。
1.2 通过Cocoapods集成
1.2.1 平台配置
Cocoapods已经升级到1.0以上版本,下面的集成说明使用1.0版语法,如需参考0.x版语法,仅删除以下代码即可
target'工程target名称'doend
Cocoapods集成U-Share SDK可在Podfile中灵活配置,如工程target名为UMSocialDemo,可选添加以下代码:
target'UMSocialDemo'do# U-Share SDK UI模块(分享面板,建议添加)pod ‘UMengUShare/UI’# 集成新浪微博pod ‘UMengUShare/Social/Sina'
# 集成微信
pod ‘UMengUShare/Social/WeChat'# 集成QQpod ‘UMengUShare/Social/QQ'
# 集成Facebook
pod ‘UMengUShare/Social/Facebook'# 集成Twitterpod ‘UMengUShare/Social/Twitter'
# 集成支付宝
pod ‘UMengUShare/Social/AlipayShare'# 集成豆瓣pod ‘UMengUShare/Social/Douban'
# 集成人人
pod ‘UMengUShare/Social/Renren'# 集成腾讯微博pod ‘UMengUShare/Social/TencentWeibo'
# 集成来往(点点虫)
pod ‘UMengUShare/Social/LaiWang'# 集成易信pod ‘UMengUShare/Social/YiXin'
# 集成领英
pod ‘UMengUShare/Social/Linkedin'# 集成Flickrpod ‘UMengUShare/Social/Flickr'
# 集成Kakao
pod ‘UMengUShare/Social/Kakao'# 集成Tumblrpod ‘UMengUShare/Social/Tumblr'
# 集成Pinterest
pod ‘UMengUShare/Social/Pinterest
# 集成Instagram
pod ‘UMengUShare/Social/Instagram'# 集成Linepod ‘UMengUShare/Social/Line'
# 集成WhatsApp
pod ‘UMengUShare/Social/WhatsApp'# 集成邮件pod ‘UMengUShare/Social/Email'
# 集成短信
pod ‘UMengUShare/Social/SMS'end
新增加Cocoapods集成命令U-Share时直接使用pod update更新,不可加入--no-repo-update参数,需直接更新线上Cocoapods库。
1.2.2 微信、微博及QQ集成示例
若需集成微信、微博和QQ平台,可用以下Podfile配置
target'UMSocialDemo'do# U-Share SDK UI模块(分享面板,建议添加)pod ‘UMengUShare/UI’# 集成新浪微博pod ‘UMengUShare/Social/Sina'
# 集成微信
pod ‘UMengUShare/Social/WeChat'# 集成QQpod ‘UMengUShare/Social/QQ'
end
1.2.3 其他
若需要添加所有平台,只需添加以下代码:
target'UMSocialDemo'dopod ‘UMengUShare/Socialend
添加所有平台会增加应用体积,不建议使用,可用于测试
注:因为本次更新变更了cocoapods库,请使用pod update更新,不要带--no-repo-update参数,由于cocoapods库网络原因,更新时间较长,请耐心等待。
2. U-Share SDK平台配置
从这一步骤就开始需要第三方appKey和appSecret等信息,可参考第三方账号申请及绑定申请所需的平台账号。
2.1 配置各平台URL Scheme
2.1.1 添加URL Types
URL Scheme是通过系统找到并跳转对应app的一类设置,通过向项目中的info.plist文件中加入URL types可使用第三方平台所注册的appkey信息向系统注册你的app,当跳转到第三方应用授权或分享后,可直接跳转回你的app。
添加URL Types有如下几处,都可进行设置
通过工程设置面板
通过info.plist文件编辑
直接编辑info.plist中XML代码
2.1.2 配置第三方平台URL Scheme
未列出则不需设置
微信微信appKeywxdc1e388c3822c80b
QQ/Qzone以下两项都需添加:
1、"tencent"+腾讯QQ互联应用appID
2、“QQ”+腾讯QQ互联应用appID转换成十六进制(不足8位前面补0)appID:100424468
1、tencent100424468
2、QQ05fc5b14100424468转十六进制为5fc5b14,因不足8位向前补0,结果为05fc5b14,加"QQ"前缀QQ05fc5b14
新浪微博“wb”+新浪appKeywb3921700954
支付宝“ap”+appIDap2015111700822536URL Type中的identifier填"alipayShare"
易信易信appkeyyx35664bdff4db42c2b7be1e29390c1a06
点点虫点点虫appID8112117817424282305URL Type中的identifier填"Laiwang"
参考链接:添加URL Types
iOS9系统后Apple对HTTP请求及访问外部应用做了更加严格的要求,包括HTTP白名单、跳转第三方应用白名单等,具体设置第三方平台参数请参照适配iOS9/10系统。
这个太多了,就这样的对着官方文档直接复制放上来就行了
HTTPS传输安全
1.1 初始化设置
1.1.1 初始化U-Share及第三方平台
#import
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
//打开调试日志
[[UMSocialManager defaultManager] openLog:YES];
//设置友盟appkey
[[UMSocialManager defaultManager] setUmSocialAppkey:@"57b432afe0f55a9832001a0a"];
// 获取友盟social版本号
//NSLog(@"UMeng social version: %@", [UMSocialGlobal umSocialSDKVersion]);
//设置微信的appKey和appSecret
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wxdc1e388c3822c80b"appSecret:@"3baf1193c85774b3fd9d18447d76cab0"redirectURL:@"http://mobile.umeng.com/social"];
//设置分享到QQ互联的appKey和appSecret
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"100424468"appSecret:nilredirectURL:@"http://mobile.umeng.com/social"];
//设置新浪的appKey和appSecret
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"3921700954"appSecret:@"04b48b094faeb16683c32669824ebdad"redirectURL:@"http://sns.whalecloud.com/sina2/callback"];
//支付宝的appKey
[[UMSocialManager defaultManager] setPlaform: UMSocialPlatformType_AlipaySession appKey:@"2015111700822536"appSecret:nilredirectURL:@"http://mobile.umeng.com/social"];
//设置易信的appKey
[[UMSocialManager defaultManager] setPlaform: UMSocialPlatformType_YixinSession appKey:@"yx35664bdff4db42c2b7be1e29390c1a06"appSecret:nilredirectURL:@"http://mobile.umeng.com/social"];
//设置点点虫(原来往)的appKey和appSecret
[[UMSocialManager defaultManager] setPlaform: UMSocialPlatformType_LaiWangSession appKey:@"8112117817424282305"appSecret:@"9996ed5039e641658de7b83345fee6c9"redirectURL:@"http://mobile.umeng.com/social"];
//设置领英的appKey和appSecret
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Linkedin appKey:@"81t5eiem37d2sc"appSecret:@"7dgUXPLH8kA8WHMV"redirectURL:@"https://api.linkedin.com/v1/people"];
//设置Twitter的appKey和appSecret
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Twitter appKey:@"fB5tvRpna1CKK97xZUslbxiet"appSecret:@"YcbSvseLIwZ4hZg9YmgJPP5uWzd4zr6BpBKGZhf07zzh3oj62K"redirectURL:nil];
// 如果不想显示平台下的某些类型,可用以下接口设置//
[[UMSocialManager defaultManager] removePlatformProviderWithPlatformTypes:@[@(UMSocialPlatformType_WechatFavorite),@(UMSocialPlatformType_YixinTimeLine),@(UMSocialPlatformType_LaiWangTimeLine),@(UMSocialPlatformType_Qzone)]];...returnYES;}
3.1.2 设置系统回调
// 支持所有iOS系统
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
{
BOOLresult = [[UMSocialManager defaultManager] handleOpenURL:url];
if(!result){
// 其他如支付等SDK的回调
}
returnresult;
}
注:以上为建议使用的系统openURL回调,还有以下两种回调方式,如果开发者选取以下回调,也请补充相应的函数调用。
仅支持iOS9以上系统,iOS8及以下系统不会回调
- (BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary *)options{BOOLresult = [[UMSocialManager defaultManager] handleOpenURL:url];if(!result) {// 其他如支付等SDK的回调}returnresult;}
2.支持目前所有iOS系统
- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url{BOOLresult = [[UMSocialManager defaultManager] handleOpenURL:url];if(!result) {// 其他如支付等SDK的回调}returnresult;}
1.登录
//预定义的平台
UMSocialPlatformType_Predefine_Begin= -1,
UMSocialPlatformType_Sina=0,//新浪
UMSocialPlatformType_WechatSession=1,//微信聊天
UMSocialPlatformType_WechatTimeLine=2,//微信朋友圈
UMSocialPlatformType_WechatFavorite=3,//微信收藏
UMSocialPlatformType_QQ=4,//QQ聊天页面
UMSocialPlatformType_Qzone=5,//qq空间
UMSocialPlatformType_TencentWb=6,//腾讯微博
UMSocialPlatformType_AlipaySession=7,//支付宝聊天页面
UMSocialPlatformType_YixinSession=8,//易信聊天页面
UMSocialPlatformType_YixinTimeLine=9,//易信朋友圈
UMSocialPlatformType_YixinFavorite=10,//易信收藏
UMSocialPlatformType_LaiWangSession=11,//点点虫(原来往)聊天页面
UMSocialPlatformType_LaiWangTimeLine=12,//点点虫动态
UMSocialPlatformType_Sms=13,//短信
UMSocialPlatformType_Email=14,//邮件
UMSocialPlatformType_Renren=15,//人人
UMSocialPlatformType_Facebook=16,//Facebook
UMSocialPlatformType_Twitter=17,//Twitter
UMSocialPlatformType_Douban=18,//豆瓣
UMSocialPlatformType_KakaoTalk=19,//KakaoTalk(暂未支持)
UMSocialPlatformType_Pinterest=20,//Pinterest(暂未支持)
UMSocialPlatformType_Line=21,//Line
UMSocialPlatformType_Linkedin=22,//领英
UMSocialPlatformType_Flickr=23,//Flickr
UMSocialPlatformType_Tumblr=24,//Tumblr(暂未支持)
UMSocialPlatformType_Instagram=25,//Instagram
UMSocialPlatformType_Whatsapp=26,//Whatsapp
UMSocialPlatformType_Predefine_end=999,
//用户自定义的平台
UMSocialPlatformType_UserDefine_Begin =1000,
UMSocialPlatformType_UserDefine_End =2000,
2.授权登录
[[UMSocialManager defaultManager] getUserInfoWithPlatform:UMSocialPlatformType_QQ currentViewController:nil completion:^(id result,NSError *error) {
if(error) {
}else{
UMSocialUserInfoResponse*resp = result;
//授权信息
NSLog(@"QQ uid: %@", resp.uid);
NSLog(@"QQ openid: %@", resp.openid);
NSLog(@"QQ accessToken: %@", resp.accessToken);
NSLog(@"QQ expiration: %@", resp.expiration);
//用户信息
NSLog(@"QQ name: %@", resp.name);
NSLog(@"QQ iconurl: %@", resp.iconurl);
NSLog(@"QQ gender: %@", resp.gender);
//第三方平台SDK源数据
NSLog(@"QQ originalResponse: %@", resp.originalResponse);
[selfRequestLogin:respLoginType:@"qq"];
}
}];
1.1 新浪分享
UMSocialMessageObject*messageObject = [UMSocialMessageObjectmessageObject];
//设置文本
messageObject.text= [NSStringstringWithFormat:@"%@,%@",titleName,strFullUrl];
//创建图片内容对象
UMShareImageObject*shareObject = [[UMShareImageObjectalloc]init];
//如果有缩略图,则设置缩略图
shareObject.shareImage=self.UMimageView.image;
//分享消息对象设置分享内容对象
messageObject.shareObject= shareObject;
[[UMSocialManagerdefaultManager]shareToPlatform:platformTypemessageObject:messageObjectcurrentViewController:selfcompletion:^(idresult,NSError*error) {
if(error) {
UMSocialLogInfo(@"************Share fail with error %@*********",error);
}else{
if([resultisKindOfClass:[UMSocialShareResponseclass]]) {
UMSocialShareResponse*resp = result;
//分享结果消息
UMSocialLogInfo(@"response message is %@",resp.message);
//第三方原始返回的数据
UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);
}else{
UMSocialLogInfo(@"response data is %@",result);
}
}
}];
2。QQ、QQ空间、微信、朋友圈等分享可以用这个方法,其他的分享参考官方文档或者是平台接受分享的规则
UMSocialMessageObject*messageObject = [UMSocialMessageObject messageObject];
UMShareWebpageObject*shareObject = [UMShareWebpageObject shareObjectWithTitle:titleNamedescr:nil thumImage:self.UMimageView.image];
shareObject.webpageUrl= strFullUrl;
//分享消息对象设置分享内容对象
messageObject.shareObject= shareObject;
[[UMSocialManagerdefaultManager]shareToPlatform:platformTypemessageObject:messageObjectcurrentViewController:selfcompletion:^(idresult,NSError*error) {
if(error) {
UMSocialLogInfo(@"************Share fail with error %@*********",error);
}else{
if([resultisKindOfClass:[UMSocialShareResponseclass]]) {
UMSocialShareResponse*resp = result;
//分享结果消息
UMSocialLogInfo(@"response message is %@",resp.message);
//第三方原始返回的数据
UMSocialLogInfo(@"response originalResponse data is %@",resp.originalResponse);
}else{
UMSocialLogInfo(@"response data is %@",result);
}
}
}];