社會化分享大全(轉(zhuǎn))

一啤呼、系統(tǒng)原生 UIActivityViewController

優(yōu)缺點

  • 優(yōu)點:使用簡單、不用注冊繁雜的分享平臺賬號呢袱、不用導(dǎo)入臃腫的SDK包

  • 缺點:UI可定制性差,只能使用系統(tǒng)提供的固定樣式翅敌,長相如下羞福。分享的類型受限,只能分享text蚯涮、url治专、image。


    UIActivityViewController分享界面

使用:

NSString *textToShare = @"要分享的文本內(nèi)容"; 
UIImage *imageToShare = [UIImage imageNamed:@"iosshare.jpg"]; 
NSURL *urlToShare = [NSURL URLWithString:@"http://www.baidu.com"];

NSArray *activityItems = @[textToShare, imageToShare, urlToShare];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];
//去除彈出視圖用不到的圖標
//activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,UIActivityTypeAirDrop];
[self presentViewController:activityVC animated:YES completion:nil];
//設(shè)置回調(diào)block遭顶,可以在分享之后成功或失敗后做事情
UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError) {
        
        if (completed){
            NSLog(@"completed");
        }
    };
activityVC.completionWithItemsHandler = myBlock;

activityItems是要分享的內(nèi)容张峰,包括文字、圖片棒旗、網(wǎng)址喘批。但是要注意的是,不是所有平臺都支持這三種內(nèi)容的分享,例如微信铣揉,不能同時分享圖片和網(wǎng)址饶深,文字不能直接往外分享,下圖是幾個平臺分享概略


各平臺分享概略

二逛拱、系統(tǒng)原生Social Framework

優(yōu)缺點

  • 優(yōu)點:使用簡單敌厘、不用注冊繁雜的分享平臺賬號、不用導(dǎo)入臃腫的SDK包朽合。UI可以自己繪制俱两,滿足了很多個性化的需求。
  • 缺點:分享界面的UI需要開發(fā)者自己繪制曹步,增加了工作量宪彩。分享的類型受限,只能分享text箭窜、url毯焕、image。

使用

//導(dǎo)入Social.framework
#import <Social/Social.h>
// 1.判斷平臺是否可用
    if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
        NSLog(@"平臺不可用,或者沒有配置相關(guān)的帳號");
        return;
    }
//創(chuàng)建分享的控制器
SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
/*
系統(tǒng)只提供了下面幾種分享平臺:

SLServiceTypeTwitter;
SLServiceTypeFacebook;
SLServiceTypeSinaWeibo;
SLServiceTypeTencentWeibo;
SLServiceTypeLinkedIn;
*/
//添加分享的文字磺樱、圖片纳猫、鏈接
[composeVc setInitialText:@"要分享的文本內(nèi)容"];
[composeVc addImage:[UIImage imageNamed:@"choice_highlight"]];
[composeVc addURL:[NSURL URLWithString:@"http://www.baidu.com"]];

//彈出分享控制器
[self presentViewController:composeVc animated:YES completion:nil];

//監(jiān)聽用戶點擊了取消還是發(fā)送
composeVc.completionHandler = ^(SLComposeViewControllerResult result){
    if (result == SLComposeViewControllerResultCancelled) {
        NSLog(@"點擊了取消");
    } else {
        NSLog(@"點擊了發(fā)送");
    }
};   

實際可以根據(jù)id來分享到更多平臺,如微信:

NSString *socialType = @"com.tencent.xin.sharetimeline";
SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:socialType];

可以這么使用的原因是:iOS8之后系統(tǒng)推出的Share Extension,不是系統(tǒng)實現(xiàn)了微信分享竹捉,而是微信App的Share Extension提供了分享入口芜辕。所以這個不是私有API,可以放心使用块差,想獲取手機中裝的App的所有Share Extension的方法侵续。只需調(diào)用下面一句代碼倔丈。。

SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
看看控制臺輸出状蜗,手機內(nèi)所有可用的Share Extension的bundle Id 都出來了需五。

三、友盟等第三方分享平臺

優(yōu)缺點

  • 優(yōu)點:開發(fā)者可以按照第三方文檔自己定制分享界面UI轧坎、功能宏邮。分享的類型可以自由選擇,除了text缸血、url蜜氨、image。還有其他格式多媒體(聲音捎泻、視頻飒炎、文件等)可供選擇。
  • 缺點:需要去友盟以及各個分享平臺注冊繁雜的賬號笆豁、導(dǎo)入臃腫的SDK包郎汪。配置跳轉(zhuǎn)白名單。

使用
友盟極光等各種第三方分享

四闯狱、OpenShare

優(yōu)缺點

  • 優(yōu)點:開發(fā)者可以自己定制分享界面UI怒竿、功能。分享的類型可以自由選擇扩氢,除了text耕驰、url、image录豺。還有其他格式多媒體(聲音朦肘、視頻、文件等)可供選擇双饥。

  • 缺點:需要配置跳轉(zhuǎn)白名單媒抠。

使用
實現(xiàn)原理介紹
github代碼和demo地址

總結(jié)

這四種分享方案,各有優(yōu)缺點咏花,沒有最好的分享方案趴生,只有最適合你App需求的方案。

如果你的App界面需要定制化昏翰,分享類型需要支持多媒體(聲音苍匆、視頻、文件等),分享平臺只限于微信棚菊、QQ浸踩、微博、人人统求、支付寶检碗,使用openshare据块。如果需要支持的平臺很多,使用友盟分享折剃。

如果分享的類型只限于text另假、image、url怕犁,對界面要求不高浪谴,系統(tǒng)原生的UIActivityViewController就可以,使用UIActivityViewController因苹。如果界面需要定制化,使用Social Framework篇恒。

除了第一種方案UIActivityViewController不需要自己繪制界面以外扶檐,其他方案均要自己繪制分享彈出菜單,針對以上問題胁艰,我寫了一個界面和功能高度可定制化的輪子IFMShareSwift版)供大家使用款筑。

推薦

IFMShareSwift版)使用簡單、優(yōu)雅腾么,界面和功能高度可定制化奈梳。支持單行滾動、雙行滾動解虱、多行攘须、九宮格、頭視圖殴泰、尾視圖等多種樣式于宙,分享功能可以一個平臺名直接調(diào)用Share Extension,也可以使用各平臺SDK或者OpenShare自定義分享功能悍汛。歡迎前去issue捞魁、pull request、star离咐,代碼示例如下:

IFMShareView *shareView = [[IFMShareView alloc] initWithItems:@[IFMPlatformNameSms,IFMPlatformNameEmail,IFMPlatformNameQQ,IFMPlatformNameWechat] itemSize:CGSizeMake(80,100) DisplayLine:YES];

//設(shè)置分享內(nèi)容
[shareView addText:@"分享測試"];
[shareView addURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[shareView addImage:image];

[shareView showFromControlle:self];

部分自定義界面展示


圖片展示

GIF展示

動圖展示
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谱俭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宵蛀,更是在濱河造成了極大的恐慌昆著,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件术陶,死亡現(xiàn)場離奇詭異宣吱,居然都是意外死亡,警方通過查閱死者的電腦和手機瞳别,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門征候,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杭攻,“玉大人,你說我怎么就攤上這事疤坝≌捉猓” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵跑揉,是天一觀的道長锅睛。 經(jīng)常有香客問我,道長历谍,這世上最難降的妖魔是什么现拒? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮望侈,結(jié)果婚禮上印蔬,老公的妹妹穿的比我還像新娘。我一直安慰自己脱衙,他們只是感情好侥猬,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捐韩,像睡著了一般退唠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荤胁,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天瞧预,我揣著相機與錄音,去河邊找鬼仅政。 笑死松蒜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的已旧。 我是一名探鬼主播秸苗,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼运褪!你這毒婦竟也來了惊楼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤秸讹,失蹤者是張志新(化名)和其女友劉穎檀咙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體璃诀,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡弧可,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了劣欢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棕诵。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡裁良,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出校套,到底是詐尸還是另有隱情价脾,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布笛匙,位于F島的核電站侨把,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妹孙。R本人自食惡果不足惜秋柄,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蠢正。 院中可真熱鬧骇笔,春花似錦、人聲如沸机隙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽有鹿。三九已至,卻和暖如春谎脯,著一層夾襖步出監(jiān)牢的瞬間葱跋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工源梭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娱俺,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓废麻,卻偏偏與公主長得像荠卷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子烛愧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容