系统自带分享使用 "<Social/Social.h> 框架
系统自带分享分为三步
1.判断分享是否可用
if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
NSLog(@"不可用,请到系统设置中配置账号和密码");
}
服务类型有:微博 腾讯微博 facebook 和 twitter四种类型 其中facebook和twitter在国内由于你懂得原因不能使用,腾讯微博现在发展太差,所以一般都使用微博服务
如果不可用,需要在系统设置中登录对应的微博账号
2.创建分享控制器
SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
控制器可以预设 图片 文字 和网址
微博可以定位,但是只有在手机app上的微博详情才能看到
// 预设文字
[composeVC setInitialText:@"愿时光不老,阳光不燥,你我都好:"];
// 预设图片
[composeVC addImage:[UIImage imageNamed:@"自拍照"]];
// 网址
[composeVC addURL:[NSURL URLWithString:@"http://www.baidu.com"]];
3.弹出分享控制器
[self presentViewController:composeVC animated:YES completion:nil];
友盟分享
当我们集成第三方SDK时,一定要参考第三方的集成文档。以友盟为例.
- 创建appKey
- 下载并安装SDK
UMSocial_Sdk_5.2.1 - 设置AppKey
- 添加实现代码
#import "UMSocial.h"
#import "UMSocialSinaSSOHandler.h"
```obj
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[UMSocialData setAppKey:@"57528d7967e58e73d7000f33"];
return YES;
}
ViewController里面的实现
首先导入头文件遵守协议
#import "UMSocial.h"
@interface ViewController ()<UMSocialUIDelegate>
@end
然后实现方法
//如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法
[UMSocialData defaultData].extConfig.title = @"分享的title";
[UMSocialData defaultData].extConfig.qqData.url = @"http://baidu.com";
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"57528d7967e58e73d7000f33"
shareText:@"友盟社会化分享让您快速实现分享等社会化功能,http://umeng.com/social"
shareImage:[UIImage imageNamed:@"icon"]
shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToSina,UMShareToQQ,UMShareToQzone]
delegate:self];
如果是iOS9系统,还需要适配iOS9的HTTP传输安全问题
如果使用第三方登录的话,分为OAuth和SSO俩种登录方法
OAuth授权:好处:不需要下载客户端 坏处:能够看到账号密码 不安全 效率低
SSO授权: 坏处:必须要安装对应客户端 好处:只要第三方的客户端已经登录,本地客户端不需要登录 安全 效率高
其中我们使用SSO授权登录 使用方法
SSO协议无法在模拟器上实现(找不到对应的app)
实现微博SSO协议需要5个步骤
1.按友盟要求导入第三方sina包
参照友盟官方文档
2.配置URL schemes
Targets - Info - URL Types 里面配置schemes
3.按友盟添加SSO授权开关 -->复制友盟官网代码
//打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。需要 #import "UMSocialSinaSSOHandler.h"
[UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"3921700954"
secret:@"04b48b094faeb16683c32669824ebdad"
RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
4.添加系统回调 -->友盟官网方法过期,可用application:openURL:options: 代替
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL result = [UMSocialSnsService handleOpenURL:url];
if (result == FALSE) {
//调用其他SDK,例如支付宝SDK等
}
return result;
}
5.适配iOS9 参照友盟官网"适配iOS9系统" --> 信任白名单