文档章节

iOS社交分享(自带分享)

云上飞飞
 云上飞飞
发布于 2016/07/27 14:31
字数 1347
阅读 15
收藏 0
点赞 0
评论 0

社交分享
苹果系统自带分享
第三方分享

了解
比较火的分享平台微信 - 是国内唯一一款没有PC原型的软件
新浪微博 - 苹果在iOS 6集成了
腾讯微博 - 在iOS 7集成的

如何实现社交分享
自己编写各个平台的分享代码(代码量较多)

利用iOS自带的Social.framework

利用第三方的分享框架
友盟分享:
http://dev.umeng.com/social/ios/share/quick-integration

ShareSDK:
http://wiki.mob.com/iOS快速集成指南
使用Social.framework之前得在“设置”中添加相应分享平台的帐号
Social.framework支持的分享平台(打开手机上的“设置”即可看到)

百度社会化分享组件:http://developer.baidu.com/soc/share+(百度还有个“社会化登录组件”:http://developer.baidu.com/soc/login)

分享实现
苹果系统自带分享实现
分享界面弹出效果
分享界面弹出效果

苹果自带分享效果.png
Social.framework使用步骤

导入#import <Social/Social.h>头文件判断服务是否可用
[SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]弹出分享内容输入界面
LComposeViewController *cc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
[self presentViewController:cc animated:YES completion:nil];额外设置[cc setInitialText:@"测试文字"]; 
// 初始化文字[cc addImage:[UIImage imageNamed:@"lufy"]]; 
// 配图

实现代码:(点击控制器的view弹出分享界面)

#import "ViewController.h"
#import <Social/Social.h> // 导入苹果自带分享的头文件

@implementation ViewController
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
// 1.判断平台是否可用(系统没有集成,用户设置账号) 
     if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) 
{
       NSLog(@"设置界面设置自己的账号"); 
       return; 
} 
// 2.创建分享控制器 
SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo]; 
// 2.1.添加分享的文字
 [composeVc setInitialText:@"梦想还是要有的,万一实现了呢"]; 
// 2.2.添加分享的图片
 [composeVc addImage:[UIImage imageNamed:@"xingxing"]]; 
// 3.弹出控制器进行分享
 [self presentViewController:composeVc animated:YES completion:nil]; 
// 4.设置监听发送结果
 composeVc.completionHandler = ^(SLComposeViewControllerResult reulst) { 
 if (reulst == SLComposeViewControllerResultDone) { 
       NSLog(@"用户发送成功"); 
} else { 
       NSLog(@"用户发送失败");
 } };
}@end

友盟框架类UMSocialSnsService 实现快速分享
1.作用:实现快速分享,类方法传入相应的参数,既可以弹出分享列表。现在提供两种列表样式。

/ 实现快速分享,类方法传入相应的参数,既可以弹出分享列表。现在提供两种列表样式。 /@interface UMSocialSnsService : NSObject

2.弹出一个分享列表的UITableViewController

/* 弹出一个分享列表的UITableViewController @param controller 在该controller弹出分享列表的UIActionSheet @param appKey 友盟appKey @param shareText 分享编辑页面的内嵌文字 @param shareImage 可以传入UIImage,或者NSData类型,分享内嵌图片,用户可以在编辑页面删除 @param snsNames 你要分享到的sns平台类型,该NSArray值是UMSocialSnsPlatformManager.h定义的平台名的字符串常量,有UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms等 @param delegate 实现分享完成后的回调对象,如果不关注分享完成的状态,可以设为nil /+(void)presentSnsController:(UIViewController )controller appKey:(NSString )appKey shareText:(NSString )shareText shareImage:(id)shareImage shareToSnsNames:(NSArray )snsNames delegate:(id <UMSocialUIDelegate>)delegate;

3.弹出一个分享列表的类似iOS6的UIActivityViewController控件

/* 弹出一个分享列表的类似iOS6的UIActivityViewController控件 @param controller 在该controller弹出分享列表的UIActionSheet @param appKey 友盟appKey @param shareText 分享编辑页面的内嵌文字 @param shareImage 分享内嵌图片,用户可以在编辑页面删除 @param snsNames 你要分享到的sns平台类型,该NSArray值是UMSocialSnsPlatformManager.h定义的平台名的字符串常量,有UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms等 @param delegate 实现分享完成后的回调对象,如果不关注分享完成的状态,可以设为nil /+(void)presentSnsIconSheetView:(UIViewController )controller appKey:(NSString )appKey shareText:(NSString )shareText shareImage:(id)shareImage shareToSnsNames:(NSArray )snsNames delegate:(id <UMSocialUIDelegate>)delegate;

4.单例

/* 得到单例对象的类方法 @return UMSocialSnsService的单例对象 /+ (UMSocialSnsService *)sharedInstance;

三方友盟分享实现
效果图

友盟分享.png

步骤
1.导入框架UMSocial_Sdk_4.2.1

2.导入头文件

import "UMSocial.h"

3.让控制器遵守协议UMSocialUIDelegate,来监听分享后的响应@interface ViewController ()<UMSocialUIDelegate>

4.利用UMSocialSnsService类,类方presentSnsController:或者presentSnsIconSheetView:弹出一个分享列表控制器(两种类型),并让控制器成为代理

// shareToSnsNames 分享到的sns平台类型 // appKey 友盟appKey, // delegate:实现分享完成后的回调对象,如果不关注分享完成的状态,可以设为nil // presentSnsIconSheetView: 弹出一个分享列表的类似iOS6的UIActivityViewController控件 [UMSocialSnsService presentSnsIconSheetView:self appKey:@"5492dcf9fd98c5e7f8001834" shareText:text shareImage:image shareToSnsNames:names delegate:self];

5.实现代理方法,监听分享结果

-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response{ NSLog(@"%d", response.responseCode);}

具体实现代码

import "ViewController.h"

import "UMSocial.h" // 导入头文件

@interface ViewController ()<UMSocialUIDelegate> // 遵守协议
@end@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    }
  • (void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event{ NSString text = @"111";
    UIImage
    image = [UIImage imageNamed:@"xingxing"];
    // 设置分享到的sns平台类型,
    // NSArray:UMSocialSnsPlatformManager.h定义的平台名的字符串常量,有UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms等 NSArray names = @[UMShareToDouban, UMShareToEmail, UMShareToFacebook, UMShareToRenren, UMShareToSina, UMShareToTencent];
    // shareToSnsNames 分享到的sns平台类型
    // appKey 友盟appKey,
    // delegate:实现分享完成后的回调对象,如果不关注分享完成的状态,可以设为nil
    // presentSnsIconSheetView: 弹出一个分享列表的类似iOS6的UIActivityViewController控件
    [UMSocialSnsService presentSnsIconSheetView:self appKey:@"5492dcf9fd98c5e7f8001834" shareText:text shareImage:image shareToSnsNames:names delegate:self];
    }
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity
    )response{ NSLog(@"%d", response.responseCode);
    }
    @end

转载地址 http://www.jianshu.com/p/4adf1037e572


 

文/Ashoka_APP(简书作者)
原文链接:http://www.jianshu.com/p/5155e61f8962
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

© 著作权归作者所有

共有 人打赏支持
云上飞飞
粉丝 6
博文 91
码字总数 100080
作品 0
黄浦
程序员
如果因为不懂就拒绝区块链,那真的有点遗憾了…

如果因为不懂就拒绝区块链,那真的有点遗憾了… 2018-04-18 09:40编辑: 枣泥布丁分类:业界动态来源:CVP平台 CVP开发者沙龙421 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程...

枣泥布丁 ⋅ 04/18 ⋅ 0

app推广渠道数据统计分析以及个性化安装为什么要选择shareinstall?

shareinstall是一个集成SDK工具,它能够兼容Android和iOS,可以实现对app推广过程中的访问量、注册量、活跃、安装量以及留在网页上的时间长短进行统计。同时能够解决现实中遇到的免填邀请码安...

h07094223 ⋅ 05/24 ⋅ 0

不满微软收购GitHub 网友纷纷晒出表情包

不满微软收购GitHub 网友纷纷晒出表情包 2018-06-07 12:42编辑: yyuuzhu分类:程序人生来源:程序师 微软Github 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程师 京东招聘iOS...

yyuuzhu ⋅ 06/07 ⋅ 0

又拍云Prism CDN 超低价 低延时 超强兼容的P2P-CDN

又拍云Prism CDN 超低价 低延时 超强兼容的P2P-CDN 2018-05-15 10:26编辑: 枣泥布丁分类:业界动态来源:https://www.upyun.com/products CDN又拍云 招聘信息: C++工程师 Cocos2d-x游戏客户...

枣泥布丁 ⋅ 05/15 ⋅ 0

安卓巴士联手Mob产品分享会精彩回顾

上周六(6月9日),由Mob和安卓巴士联合举办的Mob产品分享会在上海游族大厦完美落幕。 (大合影) 活动由Mob的五位PM担任主讲嘉宾,定向邀请了12位VIP用户,共同探讨了解MobSDK产品。 活动开...

逆鳞龙 ⋅ 06/14 ⋅ 0

苹果在研发集AR/VR于一体的头显:8K显示屏无线连接

苹果在研发集AR/VR于一体的头显:8K显示屏无线连接 2018-04-28 10:52编辑: 游星啊分类:业界动态来源:苹果汇 苹果AR头显 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程师 京东...

游星啊 ⋅ 04/28 ⋅ 0

传微软已同意收购GitHub,最早周一宣布交易

传微软已同意收购GitHub,最早周一宣布交易 2018-06-04 13:37编辑: suiling分类:业界动态来源:网易科技 微软Github微软收购GitHub 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发...

suiling ⋅ 06/04 ⋅ 0

程序员:用7张图表达我对工作的“热爱”,网友:宝宝不哭

程序员:用7张图表达我对工作的“热爱”,网友:宝宝不哭 2018-06-19 10:10编辑: suiling分类:程序人生来源:http://www.techug.com/post/pro 程序师 招聘信息: C++工程师 Cocos2d-x游戏客...

suiling ⋅ 昨天 ⋅ 0

微信小游戏会不会走上手游的老路?

微信小游戏会不会走上手游的老路? 2018-05-07 09:54编辑: 游星啊分类:业界动态来源:新语·蜜蜂观察 小游戏微信手游 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程师 京东招...

游星啊 ⋅ 05/07 ⋅ 0

你见过最目瞪狗呆的bug是什么?

你见过最目瞪狗呆的bug是什么? 2018-05-28 14:01编辑: garace分类:程序人生来源:代码湾 bug网上注册刘伟楠 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程师 京东招聘iOS开发...

garace ⋅ 05/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 33分钟前 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 51分钟前 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部