成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于iOS的社會化分享方案總結(jié)

移動開發(fā) iOS
iOS8之后系統(tǒng)推出的Share Extension,不是系統(tǒng)實現(xiàn)了微信分享,而是微信App的Share Extension提供了分享入口。所以這個不是私有API,可以放心使用,想獲取手機中裝的App的所有Share Extension的方法。

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

優(yōu)缺點

  • 優(yōu)點:使用簡單、不用注冊繁雜的分享平臺賬號、不用導入臃腫的SDK包
  • 缺點:UI可定制性差,只能使用系統(tǒng)提供的固定樣式,長相如下。分享的類型受限,只能分享text、url、image。 

 

UIActivityViewController分享界面

使用:

  1. NSString *textToShare = @"要分享的文本內(nèi)容"
  2. UIImage *imageToShare = [UIImage imageNamed:@"iosshare.jpg"]; 
  3. NSURL *urlToShare = [NSURL URLWithString:@"http://www.baidu.com"]; 
  4.   
  5. NSArray *activityItems = @[textToShare, imageToShare, urlToShare]; 
  6. UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil]; 
  7.   
  8. [self presentViewController:activityVC animated:YES completion:nil];  

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

 

各平臺分享概略

當彈出視圖框的時候,我們發(fā)現(xiàn)上邊很多圖標是我們用不到,我們可以將用不到的圖標去掉,只要設(shè)置以下屬性:

  1. activityVC.excludedActivityTypes = @[UIActivityTypePostToFacebook,UIActivityTypeAirDrop]; 

設(shè)置回調(diào)block,可以在分享之后成功或失敗后做事情,

  1. UIActivityViewControllerCompletionWithItemsHandler myBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError) { 
  2.          
  3.         if (completed){ 
  4.             NSLog(@"completed"); 
  5.         } 
  6.     }; 
  7.   
  8. activityVC.completionWithItemsHandler = myBlock; 

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

優(yōu)缺點

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

使用

導入Social.framework

  1. #import 
  2. //創(chuàng)建分享的控制器 
  3. SLComposeViewController *composeVc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo]; 
  4.   
  5. if (composeVc == nil){ 
  6.     NSLog(@"未安裝軟件"); 
  7.     return
  8.   
  9. if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) { 
  10.     NSLog(@"軟件未配置登錄信息"); 
  11.     return
  12.   
  13. //添加分享的文字、圖片、鏈接 
  14. [composeVc setInitialText:@"要分享的文本內(nèi)容"]; 
  15. [composeVc addImage:[UIImage imageNamed:@"choice_highlight"]]; 
  16. [composeVc addURL:[NSURL URLWithString:@"http://www.baidu.com"]]; 
  17.   
  18. //彈出分享控制器 
  19. [self presentViewController:composeVc animated:YES completion:nil]; 
  20.   
  21. //監(jiān)聽用戶點擊了取消還是發(fā)送 
  22. composeVc.completionHandler = ^(SLComposeViewControllerResult result){ 
  23.     if (result == SLComposeViewControllerResultCancelled) { 
  24.         NSLog(@"點擊了取消"); 
  25.     } else { 
  26.         NSLog(@"點擊了發(fā)送"); 
  27.     } 
  28. };    

系統(tǒng)只提供了下面幾種分享平臺:

  1. SLServiceTypeTwitter; 
  2.  
  3. SLServiceTypeFacebook; 
  4.  
  5. SLServiceTypeSinaWeibo; 
  6.  
  7. SLServiceTypeTencentWeibo; 
  8.  
  9. SLServiceTypeLinkedIn; 

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

  1. NSString *socialType = @"com.tencent.xin.sharetimeline"
  2.  
  3. SLComposeViewController *composeVC = [SLComposeViewControllercomposeViewControllerForServiceType:socialType]; 

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

  1. SLComposeViewController *composeVc = [SLComposeViewControllercomposeViewControllerForServiceType:SLServiceTypeSinaWeibo]; 

看看控制臺輸出,手機內(nèi)所有可用的Share Extension的bundle Id 都出來了。

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

優(yōu)缺點

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

使用

友盟分享使用文檔及SDK下載(http://dev.umeng.com/social/ios/operation)

四、OpenShare

優(yōu)缺點

  • 優(yōu)點:開發(fā)者可以自己定制分享界面UI、功能。分享的類型可以自由選擇,除了text、url、image。還有其他格式多媒體(聲音、視頻、文件等)可供選擇。
  • 缺點:需要配置跳轉(zhuǎn)白名單。

使用

  • 實現(xiàn)原理介紹

http://www.gfzj.us/series/openshare/

  • github代碼和demo地址

https://github.com/100apps/openshare

總結(jié)

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

如果你的App界面需要定制化,分享類型需要支持多媒體(聲音、視頻、文件等),分享平臺只限于微信、QQ、微博、人人、支付寶,使用openshare。如果需要支持的平臺很多,使用友盟分享。

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

方案 UI 分享類型 分享平臺
UIActivityViewController 要求不高 text、image、url 多種平臺
Social Framework 要求自定義 text、image、url 多種平臺
友盟等第三方分享平臺 要求自定義 支持多媒體(聲音、視頻、文件等) 多種平臺
OpenShare 要求自定義 支持多媒體(聲音、視頻、文件等 微信/QQ/微博/人人/支付寶

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

推薦

IFMShare(Swift版)使用簡單、優(yōu)雅,界面和功能高度可定制化。支持單行滾動、雙行滾動、多行、九宮格、頭視圖、尾視圖等多種樣式,分享功能可以一個平臺名直接調(diào)用Share Extension,也可以使用各平臺SDK或者OpenShare自定義分享功能。歡迎前去issue、pull request、star,代碼示例如下:

  1. IFMShareView *shareView = [[IFMShareView alloc] initWithItems:@[IFMPlatformNameSms,IFMPlatformNameEmail,IFMPlatformNameQQ,IFMPlatformNameWechat] itemSize:CGSizeMake(80,100) DisplayLine:YES]; 
  2. //設(shè)置分享內(nèi)容 
  3. [shareView addText:@"分享測試"]; 
  4. [shareView addURL:[NSURL URLWithString:@"http://www.baidu.com"]]; 
  5. [shareView addImage:image]; 
  6.      
  7. [shareView showFromControlle:self]; 

部分自定義界面展示 

 

圖片展示

GIF展示 

 

動圖展示

參考文章:

《使用系統(tǒng)自帶的UIActivityViewController和UIActivity進行內(nèi)容分享》

新手指南:使用 Social Framework 以及 UIActivityViewController

iOS通過UIActivityViewController實現(xiàn)原生分享功能

UIActivityViewController 和 SLComposeViewController

程序內(nèi)分享到微信

責任編輯:龐桂玉 來源: iOS大全
相關(guān)推薦

2012-10-31 10:23:37

多多

2013-04-23 10:26:14

ShareSDK社會化iOS開發(fā)

2011-07-15 09:45:14

App應用程序應用商店

2014-04-15 18:05:16

ShareSDK社會化分享林帆

2013-02-28 16:46:40

社會化搜索社會化搜索

2013-12-23 17:21:38

微信社會化

2016-09-18 16:26:19

用友企業(yè)互聯(lián)網(wǎng)

2013-06-06 10:26:45

2011-04-15 09:56:41

2012-04-18 10:58:35

企業(yè)UC

2013-02-28 16:44:22

搜索社會化搜索

2013-08-23 15:49:00

創(chuàng)業(yè)企業(yè)團隊

2013-03-01 09:19:56

社會化搜索云云網(wǎng)

2009-05-08 09:35:50

YouTubeSNS社會化網(wǎng)絡(luò)

2013-08-27 13:44:49

2016-06-13 13:43:27

用友優(yōu)普

2011-06-16 09:17:45

應用Zaarly

2011-06-21 14:02:27

Adworld2011社會化網(wǎng)絡(luò)熔點

2011-07-01 14:01:41

Adworld20112011微峰匯

2011-07-28 10:29:53

Nodeable服務器社交網(wǎng)絡(luò)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中文字幕日韩欧美 | 老司机午夜性大片 | 国产综合精品一区二区三区 | 男人天堂网址 | 中文字幕精品视频 | 亚洲免费在线 | 三级成人在线 | 亚洲欧美综合精品久久成人 | 中文字幕一区二区三区乱码在线 | 精品国产一区二区久久 | 国产精品美女久久久免费 | 久久精品国产一区二区电影 | 中文字幕一区二区三区乱码在线 | 国产影音先锋 | 国产男女视频网站 | 成人精品在线观看 | 亚洲激精日韩激精欧美精品 | 色爱综合网 | 精品中文字幕一区二区 | 日韩视频在线播放 | 国产欧美精品区一区二区三区 | 国产精品视频不卡 | 午夜小电影 | 日本涩涩网| 国产精品毛片一区二区在线看 | av网址在线 | 国产精品中文字幕一区二区三区 | 国产精品久久久久久亚洲调教 | 日日摸日日添日日躁av | 免费看国产片在线观看 | 一区二区三区中文 | 国产1区| 伊人网在线综合 | 午夜精品| 精品一区二区视频 | a级片在线 | 男女网站免费 | www.色综合| 毛片毛片毛片毛片 | 国产高清精品一区二区三区 | 一区二区日韩 |