社会化分享
广告 - 免费推广.
原生框架
了解内容:(在中国不适用,只支持新浪微博和腾讯微博)
苹果原生的只有新浪微博和腾讯微博.其他的不行.不实用.
框架:Social.
控制器:SLComposeViewController
if ([SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo] == NO) {
NSLog(@"不支持微博分享服务");
}
// 实例化
SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
// 配置
[composeVc setInitialText:@"测试用的"];
[composeVc addImage:[UIImage imageNamed:@"nihao"]];
// 结果回调参数
// SLComposeViewControllerCompletionHandler
= ^(SLComposeViewControllerResult result){
// SLComposeViewControllerResultCancelled,
// SLComposeViewControllerResultDone
if (result == SLComposeViewControllerResultDone) {
NSLog(@"分享成功");
} else {
NSLog(@"分享失败");
}
};
// 3. 弹出来
[self presentViewController:composeVc animated:YES completion:nil];
第三方框架
- shareSDK和友盟
- 注意原理:集成所有share,但是这个分享的前提是你必须去相应网站配置信息.演示微信和微博的分享,只是把其他app的分享集成到一起而已,本身不能做分享的. 因此需要你分别取shareSDK上和各个需要分享到应用开放平台上注册appKey和appSecret.
根据shareSDK官网上的代码提示.
- 导入ShareSDK的框架
- 在下载的时候需要指定所分享的平台.
- 导入每个SDK所需要使用的系统框架(根据你需要的分享平台的系统框架决定)
- 初始化ShareSDK注册并验证.
- 代码部分
4.1. 导入相应的头文件.(ShareSDK的,你需要分享的app的)
导入时注意点:
1. .framework用<框架名>导入,.a用"框架名"导入
2. 注意系统自带的分享不需要连接,只需要连接第三方的分享(因为第三方有SDK需要连接)
4.2. 注册,初始化ShareSDK应用根据官网上的示例代码,配置参数. // appKey
[ShareSDK registerApp:shareSDKAppKey activePlatforms:platforms onImport:importHandler onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
switch (platformType)
{
case SSDKPlatformTypeSinaWeibo:
//设置新浪微博应用信息,其中authType设置为使用SSO+Web形式授权,注意授权回调页不能写错,得写开放者平台上填写的.不然会得不到你的授权.
[appInfo SSDKSetupSinaWeiboByAppKey:shareWeiboAppKey
appSecret:shareWeiboAppSecret
redirectUri:SinaWeiboRedirectUri
authType:SSDKAuthTypeBoth];
break;
case SSDKPlatformTypeWechat:
[appInfo SSDKSetupWeChatByAppId:shareWechatAppKey
appSecret:shareWechatAppSecret];
break;
default:
break;
}
}];
```
** 注意授权回调页不能写错,得写开放者平台上填写的.不然会得不到你的授权. **
- 弹出分享界面
5.1 弹出分享界面方法,根据方法参数配置相关参数.
Other Linker:如果libWeiboSDK.a里面的.m(.a文件中的.m已经被编译成其他的东西了)文件的代码.
//1、创建分享参数
NSString *text = @"测试用的";
NSArray* imageArray = @[[UIImage
//分享的网页路径
NSURL *url = [NSURL
NSString *title = @"分享的标题";
// (注意:图片必须要在Xcode左边目录里面,名称必须要传正确,如果要分享网络图片,可以这样传iamge参数
if (imageArray) {
NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
[shareParams SSDKSetupShareParamsByText:text
images:imageArray
url:url
title:title
type:SSDKContentTypeAuto];
// show分享
[ShareSDK showShareActionSheet:nil items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
// SSDKResponseState表示结果状态
if (state == SSDKResponseStateSuccess) {
NSLog(@"分享成功: %@, %@", userData, contentEntity);
}
if (error) {
NSLog(@"错误信息: %@", error);
}
}];
}
微信分享,需要跳转进微信页面.进行额外的配置.
- SSO登陆认证,跳转APP(免登陆进行授权)
6.1. wechat平台需要添加sso之后才能使用,因为微信没有网页,必须走sso
6.2. 配置info中的url scheme!
6.3. iOS9.0之后,要配置https
6.4. 白名单,根据官网配置.