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"

//设置微信AppIdappSecret,分享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 分享至友盟分享的更多相关文章

  1. iOS开发-友盟分享(3)

    iOS 友盟分享 这个主要是提到如何通过友盟去自定义分享的步骤: 一.肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的工程文件夹里面去: 二.注册友盟账号,将你的APP添加到你的账号里面然后 ...

  2. iOS开发-友盟分享(1)

    1.集成友盟分享,需要先注册一个友盟账号,注册地址 友盟开发者平台官网  友盟集成文档 友盟sdk下载地址友盟sdk下载地址 2,成功下载sdk集成后,微信分享需要配置一下 新浪微博 之类到同样配置就 ...

  3. iOS开发——友盟分享

    ==========2016-01-29 更新=====刘成利 email:liu_cheng_li@qq.com========== 自己成功集成到公司的项目前,也已做了测试好的友盟分享demo 目 ...

  4. iOS开发-友盟分享使用(2)

    1.友盟SDK提供功能:分享喜欢的东西到新浪微博.qq空间.为微信朋友圈等等等等社交圈. 2.友盟分享前期准备 (1)注册账号 去官网 (2)创建应用获取appkey 类似5556a53667e*** ...

  5. iOS关于友盟分享弹不出面板问题

    在程序代理类中声明 [NSThread sleepForTimeInterval:10];//设置启动页面时间 [self.window makeKeyAndVisible]; [[UMSocialM ...

  6. IOS 集成友盟分享

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

  7. iOS 集成友盟分享图片链接为http时无法加载问题解决

    一.问题描述 UMShareWebpageObject *obj = [UMShareWebpageObject shareObjectWithTitle:title descr:shareText ...

  8. 友盟分享,极光推送Demo

    友盟分享SDK下载及官方文档 http://dev.umeng.com/social/ios/detail-share 1.注册应用获取App友盟Appkey(556d14ad67e58eb08400 ...

  9. iOS开发——iOS10升级极光推送SDK、友盟分享SDK

    前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...

随机推荐

  1. Android 自定义view (一)——attr 理解

    前言: 自定义view是android自定义控件的核心之一,那么在学习自定义view之前,我们先来了解下自定义view的自定义属性的attr的用法吧 Android attr 是什么 (1)attr ...

  2. jmeter安装配置教程

    1.下载Jmeter 下载地址:http://jmeter.apache.org/download_jmeter.cgi 目前最新版为3.1,其余文件如源代码等也可从如下官网下载: http://jm ...

  3. IP地址数据库-ISP运营商列表(2017年1月)

    IP地址数据库  微信号:qqzeng-ip [全球旗舰版][国内精华版][国外拓展版][英文版][掩码版]     http://qqzeng.com 中国大陆:三大基础运营商 中国电信中国联通中国 ...

  4. CentOS7安装MariaDB10.1.14

    1.下载MariaDB 下载地址:https://downloads.mariadb.org/mariadb/10.1.14/ 这里选择mariadb-10.1.14-linux-x86_64.tar ...

  5. (二)sql入门 管理数据库对象

    在数据库里,有各种各样的对象,除了最常见的表之外,还有诸如视图.索引等数据库对象. 这些对象,在数据库里需要有人来管理,那么谁来管理呢?当然是数据库的使用者了.每个使用者相对于数据库里有一片区域,称为 ...

  6. php用正则检测某字段开头是否为字母

    //判断数组都已字段的开头是否为字母 $data=array();  for($i=0;$i<$length;$i++){ //是,则把数组重新取出赋值if (preg_match(" ...

  7. 二十一、Java基础--------IO流之综合案例分析

    前三篇文章详细介绍了IO流体系所涉及的重点内容,为了帮助理解与学习,本片博客主要是分析一个与IO操作相关的题目. 例1:在我们观看视频时经常要关注的就是视频的时间长度,在学习了IO操作之后,就可以自己 ...

  8. BabelMap 9.0.0.3 汉化版(2016年12月27日更新)

    软件简介 BabelMap 是一个免费的字体映射表工具,可辅助使用<汉字速查>程序. 该软件可使用系统上安装的所有字体浏览 Unicode 中的十万个字符,还带有拼音及部首检字法,适合文献 ...

  9. EditPlus 3.7 中文版已经发布

    新一版的 EditPlus 已经在昨天发布了!新版本增加了一个 64位版程序.大家可以到官方网站下载哦. 我同步更新翻译了 32位版应用程序.请点击页面左上角的链接下载.

  10. Android 控件属性介绍

    1.LinearLayout(线性布局): 可以分为水平线性:android:orientation= " horizontal " 和垂直线性:android:orientati ...