iOS开发-友盟分享(3)
iOS 友盟分享
这个主要是提到如何通过友盟去自定义分享的步骤:
一、肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的工程文件夹里面去;
二、注册友盟账号,将你的APP添加到你的账号里面然后获取到一个Key;
三、 在AppDelegate内设置友盟AppKey
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UMSocialData setAppKey:@"***这个是你注册后的APP的Key****"];
}
四、然后在你要显示分享界面的控制器设置友盟自带的分享,例如 :点击一个分享按钮在分享按钮里面添加
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"你APPKey"
shareText:@“你要分享的文字”
shareImage:[UIImage imageNamed:@"icon"]
shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToEmail,UMShareToSms,nil]
delegate:nil];
这个是使用友盟原生的分享,下面给大家介绍一下自定义的
前三步还是以上三步;
四、首先你得搭建好你想要显示什么要UI效果,比如你用UIScrollView或者 UICollectionView 或者你直接是往View里面添加Button按钮;
我介绍下我使用UICollectionView做的自定义:
1、首先实现UICollectionView最基本的协议和代理方法;
2、在UICollectionView的点击事件的方法里去根据你要添加多少个分享平台去设置;
五、首先以分享新浪,腾讯微博,人人网,豆瓣网,QQ空间,邮箱,短信为例:
1.在UICollectionView
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
NSMutableArray * shareArray =[NSMutableArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms,nil];
for (int i = 0; i< shareArray.count; i++) {
if ( indexPath.row == i )
{//新浪,腾讯微博,人人网,豆瓣网,QQ空间,邮箱,短信
[UMSocialAccountManager isOauthAndTokenNotExpired:shareArray[i]];
//进入授权页面
[UMSocialSnsPlatformManager getSocialPlatformWithName:shareArray[i]].loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
if (response.responseCode == UMSResponseCodeSuccess) {
//获取微博用户名、uid、token等
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:shareArray[i]];
NSLog(@"username is %@, uid is %@, token is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken);
//进入你的分享内容编辑页面
}
});
}}
}
这样这几个分享的功能就实现了
如果还想注册微信/手机QQ/Facebook等等
那就要看接下来的几个步骤了
1、微信你要把你所下载的SDK中Wechat文件放在工程中;
2、进入微信开放平台注册申请得到一个WXAppId;
3、在你的程序APPdelegate入口方法添加下面的代码
#import "UMSocialWechatHandler.h"
//设置微信AppId、appSecret,分享url
[UMSocialWechatHandler setWXAppId:@“你的微信AppId" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@“要分享的URL”];
4、在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes,添加xcode的url scheme为微信应用appId,例如“wxd9a39c7122aa6516”;
- (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];
}
5、在你的点击方法中根据indexPath.row进行判断点击的第几个按钮中添加
[[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToWechatSession] content:@"分享内嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
if (response.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];
到这儿微信的自定义添加就结束了;
下面就介绍下添加手机QQ的,
首先你需要到腾讯开放平台注册获取Key,然后在UMSocial_Sdk_Extra_Frameworks目录下的,添加TencentOpenAPI文件夹到工程 添加下面几个系统framework
1、在Xcode中打开工程配置文件,选择“summary”一栏。在“summary”中选择“Linked Frameworks and Libraries”一栏,点击“+”图标添加下面八个库文件,分别是
• Security.framework
• libiconv.dylib
• SystemConfiguration.framework
• CoreGraphics.Framework
• libsqlite3.dylib
• CoreTelephony.framework
• libstdc++.dylib
• libz.dylib
2、在AppDelegate中
#import "UMSocialQQHandler.h"
[UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@“http://www.umeng.com/social"];
这里注意了:在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes,设置Xcode的url scheme格式为“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”。并在QQ互联后台的URL schema中填入此字符串保持一致。 额外设置 url schemes 的格式为"tencent"+腾讯QQ互联应用appId,例如“tencent100424468”
如果URL schemes 配置错误,则分享完成后无法返回应用
在Xcode 6.0创建工程时,默认可能没有单独设置Bundle display name属性值。但是因为SDK需要用到Bundle display name的值,所以务必请检查确保这个属性存在,如果没有请添加上。

3.在APPdelegate里面实现
- (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];
}
4、然后再在点击事件里添加
[[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToQQ(这里如果要分享到QQ空间只要把UMShareToQQ换成UMShareToQzone的就可以了)] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
if (response.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];
到这儿QQ的添加已经完成了
下面给大家介绍一个Facebook的添加
1.在Facebook开放平台(点击链接) 注册你的facebook应用,注意在你的应用Native iOS App填写Bundle ID
2.把你的SDK中在UMSocial_Sdk_Extra_Frameworks目录下,把Facebook文件夹添加到工程;
3.在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes,设置Xcode的url scheme格式为“fb”+facebook AppID,例如“fb1440390216179601”
4.在APPdelegate里实现
[UMSocialFacebookHandler setFacebookAppID:@"1440390216179601" shareFacebookWithURL:@"http://www.umeng.com/social"];
- (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];
}
/**如果上面的几个分享已经添加这个那就不需要再次添加了*/
介绍就到这里了,至于其他的一些分享大家可以好好看看友盟的官方文档很详细的介绍了如何使用自定义的
这个是链接:http://dev.umeng.com/social/ios/detail-share
当然了国内除了友盟之外还有一个shareSDK,只不过个人感觉友盟的更简洁更方便一些;
iOS开发-友盟分享(3)的更多相关文章
- iOS开发——友盟分享
==========2016-01-29 更新=====刘成利 email:liu_cheng_li@qq.com========== 自己成功集成到公司的项目前,也已做了测试好的友盟分享demo 目 ...
- iOS开发-友盟分享(1)
1.集成友盟分享,需要先注册一个友盟账号,注册地址 友盟开发者平台官网 友盟集成文档 友盟sdk下载地址友盟sdk下载地址 2,成功下载sdk集成后,微信分享需要配置一下 新浪微博 之类到同样配置就 ...
- iOS开发-友盟分享使用(2)
1.友盟SDK提供功能:分享喜欢的东西到新浪微博.qq空间.为微信朋友圈等等等等社交圈. 2.友盟分享前期准备 (1)注册账号 去官网 (2)创建应用获取appkey 类似5556a53667e*** ...
- iOS关于友盟分享弹不出面板问题
在程序代理类中声明 [NSThread sleepForTimeInterval:10];//设置启动页面时间 [self.window makeKeyAndVisible]; [[UMSocialM ...
- IOS 集成友盟分享
#import <Foundation/Foundation.h> @interface UMSocialSinaHandler : NSObject +(void)openSSOWith ...
- iOS 集成友盟分享图片链接为http时无法加载问题解决
一.问题描述 UMShareWebpageObject *obj = [UMShareWebpageObject shareObjectWithTitle:title descr:shareText ...
- iOS开发——iOS10升级极光推送SDK、友盟分享SDK
前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...
- iOS友盟分享的使用总结
现在几乎所有的APP都会集成分享,为了可以更好的推广自己的APP. 目前市面上常用的分享无非就三个: 1.友盟分享; 2.shareSDK(mob); 3.苹果原生. 由于苹果原生的分享使用起来不方便 ...
- 友盟分享小结 - iOS
因之前都写在了 AppDelegate 类中,看起来过于臃肿,此次基于友盟分享重新进行了一次优化,此次分享内容基于已经成功集成 SDK 后 code 层级部分.注:此次分享基于 SDK 6.9.3,若 ...
随机推荐
- POJ 1228 - Grandpa's Estate 稳定凸包
稳定凸包问题 要求每条边上至少有三个点,且对凸包上点数为1,2时要特判 巨坑无比,调了很长时间= = //POJ 1228 //稳定凸包问题,等价于每条边上至少有三个点,但对m = 1(点)和m = ...
- rhel7防止开机破密码
在/etc/grub.d/00_header文件结尾加入 cat <<EOF set superusers="qin"#用户名称可以更加自身编辑 password ...
- ByteArrayInputStream和ByteArrayOutputStream
public class ByteArrayTest { public static void main(String[] args) throws IOException { read(write( ...
- TFS2010安装办法及序列号
安装过程: 一.安装操纵体系 安装Windows 2008 R2简体中文版 二.筹办安装过程中的须要的用户账户,并设置响应权限 具体流程如下: 1.点击“开端”——“经管对象”——“计较机经管” 2. ...
- WCF三种通信模式
WCF在通信过程中有三种模式:请求与答复.单向.双工通信. 请求与答复模式 描述:客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务端有了答复后才能继续执行其他程序 ...
- js 运算符优先级
在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...
- Linux下守护进程初探
守护进程一直后台运行,与终端脱离,一般负责周期性地执行系统任务,服务器应用一般以守护进程进行运行.实现一个守护进程主要分为5部: 1.脱离父进程 2.setsid(可以选择再次fork) 3.umas ...
- Linux2
linux开源软件 :apache软件 nginx支持更高的并发访问 MySQL PHP samba mongoDB python 应用领域: 一:服务器 二:嵌入式
- delphi XE5下 andriod 广告图片的demo
试了一下,关于好几个广告界面,左右滚动的效果:用TabControl 加上定时器实现即可. 1.TTabControl外观 TTabControl的外观由属性TabPosition控制,可选项包括: ...
- Android Studio签名打包的两种方式
签名打包的两种方式: 注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如 ...