iOS社会化分享(干货)
一、苹果原生集成的社会化分享
1、哪些平台
(1)Twitter
(2)FaceBook
(3)Flickr
(4)Vimeo
(5)新浪微博 :iOS6
(6)腾讯微博 : iOS7
2、框架 :social.framework,很简单的框架,内容不多。
3、应用场景(不只是原生的分享)
(1)通过用户的分享,实现口碑营销
(2)就是广告
(3)形式很多,比如红包,推广
4、使用方式
(1)提供一个控制器SLComposeViewController,这个控制器包含一些属性和方法
<1>添加初始化文字
- (BOOL)setInitialText:(NSString *)text;
<2>添加分享的图片
- (BOOL)addImage:(UIImage *)image;
<3>添加分享链接
- (BOOL)addURL:(NSURL *)url;
<4>服务类型(分享平台,框架中有一个头文件专门描述)
serviceType
(2)关于初始化文字,这里不需要用户再去输入信息,没有义务让用户来输入推广的内容
(3)在使用分享平台的时候,要判断服务是否可用(类方法)
[SLComposeViewController isAvailableForServiceType: SLServiceTypeSinaWeibo]

(4)实例化控制器
SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo]
(5)将控制器modal出来即可
二、友盟集成(集成微博示例)
1、常用第三方分享框架
<1>友盟分享:http://dev.umeng.com/social/ios/share/quick-integration
<2>ShareSDK:http://wiki.mob.com/iOS快速集成指南
<3>百度社会化分享组件:http://developer.baidu.com/soc/share
(百度还有个“社会化登录组件”:http://developer.baidu.com/soc/login)
2、SDK和文档 http://www.umeng.com/codecenter.html?spm=0.0.0.0.tZBl43
(1)根据需求,选择SDK中的集成平台(有友盟默认集成的)

(2)关于第三方分享的注意:
如果用户没有安装某分享平台,不可以链接下载地址,只可以提示用户无法分享或隐藏。这是苹果的规定,避免做广告之嫌。
3、友盟社会化分享组件的集成流程简述

4、流程详述
(1)注册友盟账号,获得友盟的Appkey。我们使用友盟提供的分享服务,要在友盟拥有应用以及对应的key。
(2)申请第三方账号:所要分享到的平台的应用账号。这里就是在分享平台的开发者账号已经对应的app的key等信息。这里信息的设定,要根据友盟的要求,比如请求回调页,安全域名等等。
每个平台的账号申请和审核流程是不一样的,微博申请较为方便,但是QQ就是比较麻烦,还要上传照片等审核资料。
(3)将友盟账号和第三方分享平台账号进行绑定。绑定了账号,友盟才可以使用我们的AppKey去帮我们到第三方平台进行分享。
(4)关于iOS9.0的一系列适配,主要还是ATS。
(5)应用间跳转问题(SSO)
我们希望点击分享,直接跳转到响应的应用,自从iOS9.0之后,应用间跳转需要添加白名单,指定对应跳转App的URL Scheme。
(6)参考文档进行SDK的集成(存在问题:友盟的更新比较滞后,所以,尽量参考详细集成步骤)
(7)关于集成SDK的几项注意:
<1>隐藏没有安装的分享应用(没有认证页面)
[UMSocialConfig hiddenNotInstallPlatforms:@[UMShareToQQ, UMShareToQzone, UMShareToWechatSession, UMShareToWechatTimeline]];
<2>头文件#import "UMSocial.h"
<3> 友盟提供了触发分享后显示的默认界面,一个可以从底部弹起的视图,集成了分享平台的图标,并响应点击。
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"507fcab25270157b37000010"
shareText:@"你要分享的文字"
shareImage:[UIImage imageNamed:@"icon.png"]
shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToWechatSession,UMShareToQQ,nil]
delegate:self];
<4>设置友盟的AppKey
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ [UMSocialData setAppKey:@"507fcab25270157b37000010"];}
<5>分享中可以附件很多自定义设置,比如图片,URL,gif,可以根据文档自行添加。
<6>代理方法设置回调(可选)
三、关于应用间跳转的补充
1、应用间跳转的实现
(1)canOpenURL 判断是否可以进行跳转,使用这条命令,就必须添加白名单
(2)跳转的核心OpenURL ,要求有正确的协议头即可,系统Url协议头有很多:http:// ftp:// file:// email:// tel:// 等
(3)自定义协议头 设置 URL schemes (targets -> info ->URL Types -> URL schemes)
2、应用间跳转携带信息(参数)的情况
(1)在url协议头后面添加内容 ,例:weibo:// name = zhangsan ,只要协议头正确就可以跳转,后面的内容可以作为参数使用。
(2)应用被别的程序打开时调用代理方法,这里返回的url可以携带跳转发起者的指定信息
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
(3)信息传递原理:iOS系统应该可以在应用间跳转时记录Url信息,将A请求跳转的Url记录后转交给B的应用程序对象,然后B的应用程序代理对象可以接收到回传的Url(个人理解)。
iOS社会化分享(干货)的更多相关文章
- iOS - 社会化分享-微信分享,朋友圈分享
我仅仅做了文字和图片分享功能 1. TARGETS - Info - URL Types identifier -> weixin URL Schemes -> 应用id 2.在AppD ...
- iOS快速集成友盟社会化分享功能(v6.1.1)
1. U-Share SDK集成 1.1 下载U-Share SDK 通过iOS社会化组件选择所需的社交平台后进行下载,下载链接http://dev.umeng.com/social/ios/sdk ...
- QF——iOS第三方登录和社会化分享
QQ登录的流程: 1.下载SDK,并添加到项目中: 2.添加SDK需要的依赖库,以及配置文件: 3.重写APPDelegate的方法handleOpenURL和openURL: 4.实现Tencent ...
- iOS - Share 分享/第三方登录
1.系统方式创建分享 按照下图在 Info.plist 文件中将 Localization native development region 的值改为 China.如果不设置此项弹出的分享页面中显示 ...
- 在Android Studio中使用shareSDK进行社会化分享(图文教程)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- [Xcode 实际操作]八、网络与多线程-(24)社会化分享功能开发包的安装和配置:微信、QQ、微博
目录:[Swift]Xcode实际操作 本文将演示如何在开放平台注册应用,并获得相关的密钥信息,用于实现后面文章的微博分享功能. 一.新浪微博开放平台 [登录]->[微服务]->[粉丝服务 ...
- iOS 6分享列表——UIActivityViewController详解
iOS 6分享列表——UIActivityViewController详解 2013-06-03 01:42:33 发表评论 在iOS 6之后提供了一个分享列表视图,它通过UIActivity ...
- Xamarin.Android 绑定友盟社会化分享组件
Xamarin.Android 绑定友盟社会化分享组件 最近在开发博客园Android App的时候需要用到友盟社会化分享组件,在github上搜了一下都没有找到最新版本绑定好的项目,就自己动手来绑定 ...
- 纯CSS3实现的顶部社会化分享按钮
今天要分享一款纯CSS3实现的社会化分享按钮,它放置在网页的顶部,你可以选择将它固定在网页顶部,这样对用户分享内容就十分方便.这些社会化分享按钮的图标文件来自google和bootstrap的字体文件 ...
随机推荐
- [Windows Server 2003] 安装网站伪静态
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:安装IIS伪静 ...
- 【VHDL】组合逻辑电路和时序逻辑电路的区别
简单的说,组合电路,没有时钟:时序电路,有时钟. ↓ 也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能. ↓ 在VHDL语言中,不完整条件语句对他们二者的影响分别是什么?组合逻辑中可能生成锁 ...
- Android Service初解
Service是什么呢? 他同Activity相比,最大的不同就是他没有专门的Layout展示界面,他默默的工作在App的后台. 虽然除了少数几种情况,我们不需要使用Service,但我们也有必要了解 ...
- Fedora 和 RedHat 以及 SUSE 中 YUM 工具的使用
参考博客:https://www.cnblogs.com/good-study/p/9928587.html 一.yum命令概述: 1.简介: yum命令时在Fedora和RedHat以及SUSE中基 ...
- js 输入框只能输入 1-7 的数字
$jq(function () { $jq("#XSCM_WORKDAY").keyup(function () { //如果输入非数字,则替换为'',如果输入数字,则在每4位之后 ...
- json 添加 和删除两种方法
<script> var test = { name: "name", age: "12" }; var countrys = { "ne ...
- 【JavaScript进阶】深入理解JavaScript中ES6的Promise的作用并实现一个自己的Promise
1.Promise的基本使用 // 需求分析: 封装一个方法用于读取文件路径,返回文件内容 const fs = require('fs'); const path = require('path') ...
- uva 1587(Box UVA - 1587)
题目大意是给定6个数对,每个数对代表一个面的长和宽,判断这6个面是否能构成一个长方体. 这种题一看很复杂,但是只要不想多了实际上这就是一个水题... 首先说明一下判断的思路: 1.长方体是有三个对面的 ...
- PAT 1101 Quick Sort
There is a classical process named partition in the famous quick sort algorithm. In this process we ...
- 公钥基本结构(PKI)的概念
公钥证书 ,通常简称为证书 ,用于在 Internet.Extranet 和 Intranet 上进行身份验证并确保数据交换的安全.证书的颁发者和签署者就是众所周知的 证书颁发机构 (CA),将在下一 ...