随着社交工具的应用范围越来越广,分享一些内容的功能也开始要求实现了。

用得比较多的第三方,比如说友盟,比如说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和微信的更多相关文章

  1. ios中调用友盟分享时qq可以分享但是微信失败,只显示文字,网页链接没有出现

    问题如下,最后在老大各种替换的情况下,找到了原因,是因为图片失效了,友盟分享微信时必须需要图片才可以,如果服务器图片失效,则会失败: 注意下面的图片是否能够获取???????????????????? ...

  2. 友盟分享——Android App接入微信开放平台注意事项

    一.Android第三方应用接入微信开放平台的注意事项: 1. 到微信开放平台官网申请正式的AppID(需通过审核),要填写包名.app签名的md5值.至于如何获取app签名信息,官方提供签名包apk ...

  3. UmengShareDemo【友盟分享SDK集成,基于V6.9.3版本】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下友盟分享SDK集成的步骤. 如果想要使用自定义分享对话框实现,请参考<ShareDialogDemo[分享对话框 ...

  4. iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。

    这两天改版一个旧的APP,要旧貌换新颜,拿到app后进行编译,一直报下面的错误. 报不认识的符号名PayReq错误.奇怪,啥也没动就这样,真不知道给的包是不是本来就是个报错的工程. 不管怎样,要对它修 ...

  5. Android 友盟分享详细集成过程及所遇问题解决

    最近项目需要针对微信.朋友圈.QQ.QQ空间集成友盟分享的功能,说实话,我也是第一次做,期间碰到过很多问题,这篇随笔就来写一下我是怎么集成友盟分享的,还有碰到哪些问题,都是怎样解决的! 其实集成友盟并 ...

  6. IOS 集成友盟分享

    #import <Foundation/Foundation.h> @interface UMSocialSinaHandler : NSObject +(void)openSSOWith ...

  7. android 集成友盟分享之后,想自定义分享面板的看过来

    第一种情况 首先上传一张默认的友盟分享的效果图 看起来还不错,但是总是有这样那样的原因,需要我们对默认效果做出一些改变. 第二种情况 如果你想做出下面的效果: 或者这样的效果 : 总之上面的效果总是在 ...

  8. 友盟分享到微信的几点备忘(IOS)

    1.下载最新的友盟分享版本,参考友盟官方的demo 2.注册微信开放平台用户,不是公众平台,注册应用 3.参考文档和demo,加入sdk包和相应的lib 4.在plist加入URL types.URL ...

  9. Android 友盟分享躺过的几个坑,大坑,坑爹啊

    前言:公司上线了一个项目,做Android 客户端集成友盟分享,在做得过程中,遇到了下面3个问题,希望其他小伙伴注意. ) 错误1: 1.错误描述 我是照着友盟的集成文档一步一步的集成的,做完后,发现 ...

随机推荐

  1. Linux内核--usb子系统的分析

    drivers/usb/core/usb.c subsys_init(usb_init); module_exit(usb_exit); 我们 看到一个subsys_initcall,它也是一个宏,我 ...

  2. 推荐《Linux 多线程服务器端编程》

    赖勇浩(http://laiyonghao.com) 最近,有一位朋友因为工作需要,需要从网游的客户端编程转向服务器端编程,找我推荐一本书.我推荐了<Linux 多线程服务器端编程——使用 mu ...

  3. android UI设计时须要注意遵循的设计原则

    1.Android设备屏幕尺寸分布 首先看一下各种屏幕的尺寸和屏幕密度划分,下图是各种屏幕尺寸相应的范围: 从上图能够看出.相应normal尺寸的屏幕范围集中在常见的3到5寸屏之间.large尺寸相应 ...

  4. oc-30-堆栈

    /** 操作引用计数器的方式:每个对象内部(对象的堆内存里面)都有一个引用计数器变量,表示对象被引用的次数. 1:retainCount:获得对象的引用计数器的值 2:retain:能够让对象的计数器 ...

  5. hung_task_timeout_secs 和 blocked for more than 120 seconds

    https://help.aliyun.com/knowledge_detail/41544.html 问题现象 云服务器 ECS Linux 系统出现系统没有响应. 在/var/log/messag ...

  6. GAC(Global Assembly Cache)注册/卸载 dll

    当发现有多个解决方案引用一个dll时,为了不重复引用所以将.net的一个dll注册到GAC中去. gacutil.exe. 记得使用管理员权限打开 开始菜单-Microsoft Visual Stud ...

  7. VMware EXSI 6.0 体验

    VMware EXSI 6.0 体验 导读 VMware 作为虚拟化行业的老大,占据了80%的市场份额.而在服务器虚拟化就不得不说 VMware vSphere ,这个组合包括了VMware EXSI ...

  8. php 运行客户提交代码(攻击)和运行图片中的代码

    1.$a=@strrev(ecalper_gerp);$b=@strrev(edoced_46esab);@$a($b(L3h4L2Ug),$_POST[POST],bxxb); 2.<?php ...

  9. 想了解JAVA的,看看(转载)

    较新一篇 / 较旧一篇 编辑 |删除 | 复制链接  公开 想了解JAVA的,看看(转载)2009-03-01 15:41 (分类:默认分类) 先总结一下: J2SE   (Core/Desktop) ...

  10. 集成支付宝钱包支付ios SDK的方法和经验

    没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了. 下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 “请点此下载集成开 ...