友盟分享--集成QQ和微信
随着社交工具的应用范围越来越广,分享一些内容的功能也开始要求实现了。
用得比较多的第三方,比如说友盟,比如说Share等等...
前几天刚用友盟写了集成QQ和微信客户端的功能,觉得有必要分享一下。
在这之前,你需要有一个友盟的appkey...(木有的可去注册),并下载你所要的SDK;
#import "UMSocial.h"
//设置友盟分享社会化组件appkey
[UMSocialData setAppKey:UM_appkey];
先说集成QQ的吧:
首先,在UMSocial_Sdk_Extra_Frameworks目录下的,添加TencentOpenAPI文件夹到工程;
然后,根据友盟的文档,依次添加必要的framework;
第三步,在Xcode工程中,点击工程名-->info-->URL Types 添加一个元素,并设置URL Schemes 将appid(没有appid的去腾讯开放平台申请)转化为十六进制填进去;
格式为:QQ+appid的十六进制-------(单独使用QQ授权,格式为:tencent+appid);
第四步:在appdelegate中,导入头文件,并打开集成QQ开关
#import "UMSocialQQHandler.h"
//设置分享到QQ应用id和分享url链接
[UMSocialQQHandler setQQWithAppId:QQ_appid appKey:QQ_appkey url:@"http://www.umeng.com/social"];
第五步:实现系统回调的方法:
#pragma mark 系统回调方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [UMSocialSnsService handleOpenURL:url];
}
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [UMSocialSnsService handleOpenURL:url];
}
最后,点击分享按钮的时候,就可以调用方法了...
[UMSocialSnsService presentSnsIconSheetView:self appKey:UM_appkey shareText:text shareImage:nil shareToSnsNames:@[UMShareToQQ,UMShareToQzone,UMShareToTencent,UMShareToSina] delegate:self];
集成微信:
首先,在UMSocial_Sdk_Extra_Frameworks目录下,添加Wechat文件夹到工程;
然后,和集成QQ第三步一样,再添加一个元素,设置URL Schemes 将微信appid(没有的去微信开放平台注册)填进去;
第三步,同样是导入头文件,打开开关;
#import "UMSocialWechatHandler.h"
//设置微信appid appSecret,分享url链接
[UMSocialWechatHandler setWXAppId:WX_appid appSecret:WX_appSecret url:@"http://www.umeng.com/social"];
(如果是单独实现微信授权,还需实现上述的系统回调方法)
最后,点击分享按钮的时候,就可调用方法了...
若不是单独实现微信分享,只需要在方法中的数组参数中,添加上微信的功能就行了。
无论是QQ还是微信,都有分享完成的回调方法,是可选的;
//实现回调方法
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
{
//根据responseCode得到发送结果,若分享成功
if (response.responseCode == UMSResponseCodeSuccess) {
//得到分享到的平台名称
NSLog(@"share to sns name:%@",[[response.data allKeys] objectAtIndex:0]);
}
}
如果是直接分享到微信,则调用下面的方法:
[[UMSocialDataService defaultDataService]postSNSWithTypes:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite] content:@"分享内嵌文字" image:nil location:nil urlResource:nil completion:^(UMSocialResponseEntity *response) {
if (response.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];
到现在,基本上就可以实现分享到平台的功能了。。。
效果图如下所示:
(我随便写了一个网址,没有请求到数据-------模拟器没有安装QQ和微信,点击会提示没有安装)
希望这篇文章会对您有所帮助,有什么问题或建议,请与我联系。。。
友盟分享--集成QQ和微信的更多相关文章
- ios中调用友盟分享时qq可以分享但是微信失败,只显示文字,网页链接没有出现
问题如下,最后在老大各种替换的情况下,找到了原因,是因为图片失效了,友盟分享微信时必须需要图片才可以,如果服务器图片失效,则会失败: 注意下面的图片是否能够获取???????????????????? ...
- 友盟分享——Android App接入微信开放平台注意事项
一.Android第三方应用接入微信开放平台的注意事项: 1. 到微信开放平台官网申请正式的AppID(需通过审核),要填写包名.app签名的md5值.至于如何获取app签名信息,官方提供签名包apk ...
- UmengShareDemo【友盟分享SDK集成,基于V6.9.3版本】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下友盟分享SDK集成的步骤. 如果想要使用自定义分享对话框实现,请参考<ShareDialogDemo[分享对话框 ...
- iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。
这两天改版一个旧的APP,要旧貌换新颜,拿到app后进行编译,一直报下面的错误. 报不认识的符号名PayReq错误.奇怪,啥也没动就这样,真不知道给的包是不是本来就是个报错的工程. 不管怎样,要对它修 ...
- Android 友盟分享详细集成过程及所遇问题解决
最近项目需要针对微信.朋友圈.QQ.QQ空间集成友盟分享的功能,说实话,我也是第一次做,期间碰到过很多问题,这篇随笔就来写一下我是怎么集成友盟分享的,还有碰到哪些问题,都是怎样解决的! 其实集成友盟并 ...
- IOS 集成友盟分享
#import <Foundation/Foundation.h> @interface UMSocialSinaHandler : NSObject +(void)openSSOWith ...
- android 集成友盟分享之后,想自定义分享面板的看过来
第一种情况 首先上传一张默认的友盟分享的效果图 看起来还不错,但是总是有这样那样的原因,需要我们对默认效果做出一些改变. 第二种情况 如果你想做出下面的效果: 或者这样的效果 : 总之上面的效果总是在 ...
- 友盟分享到微信的几点备忘(IOS)
1.下载最新的友盟分享版本,参考友盟官方的demo 2.注册微信开放平台用户,不是公众平台,注册应用 3.参考文档和demo,加入sdk包和相应的lib 4.在plist加入URL types.URL ...
- Android 友盟分享躺过的几个坑,大坑,坑爹啊
前言:公司上线了一个项目,做Android 客户端集成友盟分享,在做得过程中,遇到了下面3个问题,希望其他小伙伴注意. ) 错误1: 1.错误描述 我是照着友盟的集成文档一步一步的集成的,做完后,发现 ...
随机推荐
- k-means聚类JAVA实例
<mahout in action>第六章. datafile/cluster/simple_k-means.txt数据集例如以下: 1 1 2 1 1 2 2 2 3 3 8 8 8 9 ...
- iOS开发——数据持久化Swift篇&(三)SQLite3
SQLite3 使用 //******************** 5.3 SQLite3存储和读取数据 func use_SQLite3() { //声明一个Documents下的路径 var db ...
- 深入了解android平台的jni(二)
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名.引用的头文件目录.需要编译的.c/.cpp文件和.a静态库文件等.要掌握jni,就必须熟练掌握Andr ...
- errno多线程安全(转载)
一.errno的由来 在C编程中,errno是个不可缺少的变量,特别是在网络编程中.如果你没有用过errno,那只能说明你的程序不够健壮.当然,如果你是WIN32平台的GetLastError ...
- ajax重写,js方法重新
重写Jquery的$.ajax方法 (function($){ //备份jquery的ajax方法 var _ajax=$.ajax; //重写jquery的ajax方法 $.ajax=functio ...
- 随机 I/O & 顺序 I/O
在谈这俩概念前.先来说说 大I/O vs. 小I/O 通常.我们把 <=16KB 的I/O认为是小I/O.而 >=32KB 的I/O认为是大I/O 了解I/O的大小.影响到 ...
- 基于linux2.6.38.8内核zImage文件的自解压详解
转载:http://blog.csdn.net/wavemcu/article/details/7270439 ******************************************** ...
- WPF 之 布局(二)
一.Canvas Canvas是最基本的面板,只是一个存储控件的容器,它不会自动调整内部元素的排列及大小,它仅支持用显式坐标定位控件,它也允许指定相对任何角的坐标,而不仅仅是左上角.可以使用Left ...
- 如何利用log4Net自定义属性配置功能记录完整的日志信息
log4Net作为专业的log记录控件,对于它的强大功能大家一定不陌生.下面我将详细介绍如何利用其自定义属性,让日志信息更完整. 一,创建测试工程,log4Net组件可以自己从网上下载,也可通过Nug ...
- 1.7.4.3 Parsers
Parsers 除了主查询解析器外,还有一些其他的查询解析器可以使用或者和主查询解析器连合使用.这部分描述了其他查询解析器的细节,并且给出了一些例子: 大多数的解析器都可以使用局部查询参数的方式来表达 ...