社交分享
蘋果系統(tǒng)自帶分享
第三方分享
了解
比較火的分享平臺(tái)微信 - 是國(guó)內(nèi)唯一一款沒有PC原型的軟件
新浪微博 - 蘋果在iOS 6集成了
騰訊微博 - 在iOS 7集成的
如何實(shí)現(xiàn)社交分享
自己編寫各個(gè)平臺(tái)的分享代碼(代碼量較多)
利用iOS自帶的Social.framework
利用第三方的分享框架
友盟分享:
http://dev.umeng.com/social/ios/share/quick-integration
ShareSDK:
http://wiki.mob.com/iOS快速集成指南
使用Social.framework之前得在“設(shè)置”中添加相應(yīng)分享平臺(tái)的帳號(hào)
Social.framework支持的分享平臺(tái)(打開手機(jī)上的“設(shè)置”即可看到)
百度社會(huì)化分享組件:http://developer.baidu.com/soc/share+(百度還有個(gè)“社會(huì)化登錄組件”:http://developer.baidu.com/soc/login)
分享實(shí)現(xiàn)
蘋果系統(tǒng)自帶分享實(shí)現(xiàn)
分享界面彈出效果
分享界面彈出效果
蘋果自帶分享效果.png
Social.framework使用步驟
導(dǎo)入#import <Social/Social.h>頭文件判斷服務(wù)是否可用
[SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]彈出分享內(nèi)容輸入界面
LComposeViewController *cc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
[self presentViewController:cc animated:YES completion:nil];額外設(shè)置[cc setInitialText:@"測(cè)試文字"];
// 初始化文字[cc addImage:[UIImage imageNamed:@"lufy"]];
// 配圖
實(shí)現(xiàn)代碼:(點(diǎn)擊控制器的view彈出分享界面)
#import "ViewController.h"
#import <Social/Social.h> // 導(dǎo)入蘋果自帶分享的頭文件
@implementation ViewController
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
// 1.判斷平臺(tái)是否可用(系統(tǒng)沒有集成,用戶設(shè)置賬號(hào))
if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo])
{
NSLog(@"設(shè)置界面設(shè)置自己的賬號(hào)");
return;
}
// 2.創(chuàng)建分享控制器
SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
// 2.1.添加分享的文字
[composeVc setInitialText:@"夢(mèng)想還是要有的,萬一實(shí)現(xiàn)了呢"];
// 2.2.添加分享的圖片
[composeVc addImage:[UIImage imageNamed:@"xingxing"]];
// 3.彈出控制器進(jìn)行分享
[self presentViewController:composeVc animated:YES completion:nil];
// 4.設(shè)置監(jiān)聽發(fā)送結(jié)果
composeVc.completionHandler = ^(SLComposeViewControllerResult reulst) {
if (reulst == SLComposeViewControllerResultDone) {
NSLog(@"用戶發(fā)送成功");
} else {
NSLog(@"用戶發(fā)送失敗");
} };
}@end
友盟框架類UMSocialSnsService 實(shí)現(xiàn)快速分享
1.作用:實(shí)現(xiàn)快速分享酪我,類方法傳入相應(yīng)的參數(shù)犯眠,既可以彈出分享列表。現(xiàn)在提供兩種列表樣式。
/* 實(shí)現(xiàn)快速分享,類方法傳入相應(yīng)的參數(shù)诡延,既可以彈出分享列表〗叨郏現(xiàn)在提供兩種列表樣式。 */@interface UMSocialSnsService : NSObject
2.彈出一個(gè)分享列表的UITableViewController
/** 彈出一個(gè)分享列表的UITableViewController @param controller 在該controller彈出分享列表的UIActionSheet @param appKey 友盟appKey @param shareText 分享編輯頁(yè)面的內(nèi)嵌文字 @param shareImage 可以傳入UIImage
燥滑,或者NSData
類型渐北,分享內(nèi)嵌圖片,用戶可以在編輯頁(yè)面刪除 @param snsNames 你要分享到的sns平臺(tái)類型,該NSArray值是UMSocialSnsPlatformManager.h
定義的平臺(tái)名的字符串常量铭拧,有UMShareToSina赃蛛,UMShareToTencent,UMShareToRenren搀菩,UMShareToDouban呕臂,UMShareToQzone,UMShareToEmail肪跋,UMShareToSms等 @param delegate 實(shí)現(xiàn)分享完成后的回調(diào)對(duì)象歧蒋,如果不關(guān)注分享完成的狀態(tài),可以設(shè)為nil */+(void)presentSnsController:(UIViewController *)controller appKey:(NSString *)appKey shareText:(NSString *)shareText shareImage:(id)shareImage shareToSnsNames:(NSArray *)snsNames delegate:(id <UMSocialUIDelegate>)delegate;
3.彈出一個(gè)分享列表的類似iOS6的UIActivityViewController控件
/** 彈出一個(gè)分享列表的類似iOS6的UIActivityViewController控件 @param controller 在該controller彈出分享列表的UIActionSheet @param appKey 友盟appKey @param shareText 分享編輯頁(yè)面的內(nèi)嵌文字 @param shareImage 分享內(nèi)嵌圖片,用戶可以在編輯頁(yè)面刪除 @param snsNames 你要分享到的sns平臺(tái)類型州既,該NSArray值是UMSocialSnsPlatformManager.h
定義的平臺(tái)名的字符串常量疏尿,有UMShareToSina,UMShareToTencent易桃,UMShareToRenren褥琐,UMShareToDouban,UMShareToQzone晤郑,UMShareToEmail敌呈,UMShareToSms等 @param delegate 實(shí)現(xiàn)分享完成后的回調(diào)對(duì)象,如果不關(guān)注分享完成的狀態(tài)造寝,可以設(shè)為nil */+(void)presentSnsIconSheetView:(UIViewController *)controller appKey:(NSString *)appKey shareText:(NSString *)shareText shareImage:(id)shareImage shareToSnsNames:(NSArray *)snsNames delegate:(id <UMSocialUIDelegate>)delegate;
4.單例
/** 得到單例對(duì)象的類方法 @return UMSocialSnsService
的單例對(duì)象 */+ (UMSocialSnsService *)sharedInstance;
三方友盟分享實(shí)現(xiàn)
步驟
1.導(dǎo)入框架UMSocial_Sdk_4.2.1
2.導(dǎo)入頭文件
import "UMSocial.h"
3.讓控制器遵守協(xié)議UMSocialUIDelegate磕洪,來監(jiān)聽分享后的響應(yīng)@interface ViewController ()<UMSocialUIDelegate>
4.利用UMSocialSnsService類,類方presentSnsController:或者presentSnsIconSheetView:彈出一個(gè)分享列表控制器(兩種類型)诫龙,并讓控制器成為代理
// shareToSnsNames 分享到的sns平臺(tái)類型 // appKey 友盟appKey析显, // delegate:實(shí)現(xiàn)分享完成后的回調(diào)對(duì)象,如果不關(guān)注分享完成的狀態(tài)签赃,可以設(shè)為nil // presentSnsIconSheetView: 彈出一個(gè)分享列表的類似iOS6的UIActivityViewController控件 [UMSocialSnsService presentSnsIconSheetView:self appKey:@"5492dcf9fd98c5e7f8001834" shareText:text shareImage:image shareToSnsNames:names delegate:self];
5.實(shí)現(xiàn)代理方法谷异,監(jiān)聽分享結(jié)果
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response{ NSLog(@"%d", response.responseCode);}
具體實(shí)現(xiàn)代碼
import "ViewController.h"
import "UMSocial.h" // 導(dǎo)入頭文件
@interface ViewController ()<UMSocialUIDelegate> // 遵守協(xié)議
@end@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
} - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSString *text = @"111";
UIImage *image = [UIImage imageNamed:@"xingxing"];
// 設(shè)置分享到的sns平臺(tái)類型,
// NSArray:UMSocialSnsPlatformManager.h定義的平臺(tái)名的字符串常量锦聊,有UMShareToSina歹嘹,UMShareToTencent,UMShareToRenren孔庭,UMShareToDouban尺上,UMShareToQzone材蛛,UMShareToEmail,UMShareToSms等 NSArray *names = @[UMShareToDouban, UMShareToEmail, UMShareToFacebook, UMShareToRenren, UMShareToSina, UMShareToTencent];
// shareToSnsNames 分享到的sns平臺(tái)類型
// appKey 友盟appKey怎抛,
// delegate:實(shí)現(xiàn)分享完成后的回調(diào)對(duì)象卑吭,如果不關(guān)注分享完成的狀態(tài),可以設(shè)為nil
// presentSnsIconSheetView: 彈出一個(gè)分享列表的類似iOS6的UIActivityViewController控件
[UMSocialSnsService presentSnsIconSheetView:self appKey:@"5492dcf9fd98c5e7f8001834" shareText:text shareImage:image shareToSnsNames:names delegate:self];
}
-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response{ NSLog(@"%d", response.responseCode);
}
@end
轉(zhuǎn)載地址 http://www.reibang.com/p/4adf1037e572