iOS分享到國外社交APP調(diào)研

跳轉(zhuǎn)到app都需要添加到白名單

在不使用第三方的情況下暖呕,采用系統(tǒng)原生的方法,實(shí)現(xiàn)分享功能。有兩種方式: 一種是使用UIActivityViewController孩擂,另外一種是使用Social框架中的SLComposeViewController
從iOS11開始编矾,系統(tǒng)不允許跳過前面的選擇面板直接進(jìn)行第三方平臺(tái)分享(實(shí)際上是來到了但立刻被dismiss了)熟史,所以,iOS11后只能采用第一種方式窄俏!

UIActivityViewController: 來彈出分享面板
SLComposeViewController: 來跳過分享面板直接進(jìn)行第三方平臺(tái)分享

因需求需要 , 需要調(diào)研下列幾個(gè)國外社區(qū)三方應(yīng)用的分享.

  • Facebook

    • 白名單
    <string>fbshareextension</string>
    <string>fb</string>
    <string>fb2298965036780837</string>
    <string>fbapi</string>
    <string>fbapi20130214</string>
    <string>fbapi20130410</string>
    <string>fbapi20130702</string>
    <string>fbapi20131010</string>
    <string>fbapi20131219</string>
    <string>fbapi20140410</string>
    <string>fbapi20140116</string>
    <string>fbapi20150313</string>
    <string>fbapi20150629</string>
    <string>fbauth</string>
    <string>fbauth2</string>
    
    • 系統(tǒng)分享: activityType = com.apple.UIKit.activity.PostToFacebook
      • 系統(tǒng)分享支持url 圖片 title
      • iOS11之后國行手機(jī)無法測試
    • SDK分享:
      • 可獲得成功/失敗/取消回調(diào)
      • 不能啟動(dòng)native的分享窗口, 那樣無法獲得分享完成的postId
      • FBSDKShareDialog(分享彈窗) \ FBSDKShareLinkContent (分享內(nèi)容)
    • 網(wǎng)頁分享:

  • Messenger

    • 白名單
    <string>fb-messenger-share-api</string>
    <string>fb-messenger-platform-20150128</string>
    <string>fb-messenger-platform-20150218</string>
    <string>fb-messenger-platform-20150305</string>
    <string>fb-messenger-api20140430</string>
    <string>fb-messenger-api</string>
    
    • 系統(tǒng)分享: activityType = com.facebook.Messenger.ShareExtension
      • 未登錄下, 在應(yīng)用內(nèi)調(diào)用Messenger系統(tǒng)分享會(huì)出現(xiàn)報(bào)錯(cuò)彈窗
      • Messenger系統(tǒng)分享支持url 圖片 title
    • SDK分享:
      • 回調(diào)和FB分享一致(可獲得成功/失敗/取消回調(diào))
      • FBSDKMessageDialog(分享彈窗) \ FBSDKShareLinkContent (分享內(nèi)容)
    • 網(wǎng)頁分享(已失效):

  • Twitter

    • 白名單
    <string>twitter</string>
    
    • 系統(tǒng)分享: activityType = com.apple.UIKit.activity.PostToTwitter
      • 分享支持url 圖片 title
      • iOS11之后國行手機(jī)無法測試
    • SDK分享:
      • 回調(diào)和FB分享一致(可獲得成功/失敗/取消回調(diào))
      • 不再維護(hù)
    • 網(wǎng)頁分享:

  • Google+

    • 白名單
    <string>gplus</string>
    
    • 系統(tǒng)分享: activityType = com.google.GooglePlus.ShareExtension
      • 分享支持url 圖片 title
    • SDK分享: (無)
    • 打開app深度鏈接分享[openURL]: (gplus:/) ---- text內(nèi)容需要UTF8編碼
      • gplus:/share?text={utf-8 text}
    • 網(wǎng)頁分享:

  • WhatsApp

    • 白名單
    <string>whatsapp</string>
    
    • 系統(tǒng)分享: activityType = net.whatsapp.WhatsApp.ShareExtension
      • 分享支持url 圖片 title
    • SDK分享: (無)
    • 打開app深度鏈接分享[openURL]: (whatsapp://) ---- text內(nèi)容需要UTF8編碼
    • 網(wǎng)頁分享: (需翻墻)
      • https://wa.me/?text={utf-8 text}
      • 不建議使用H5分享凹蜈,最終也會(huì)重定向到whatsapp:// 跳轉(zhuǎn)應(yīng)用分享, 否則會(huì)是引導(dǎo)頁 {需要第三方APP支持}

  • VK

    • 白名單
    <string>vk</string>
    <string>vk-share</string>
    <string>vkauthorize</string>
    
    //pod 'VK-ios-sdk'
    
    //注意事項(xiàng),一定要放在FB后面
    //Note: if you already have FaceBook SDK added and one of this methods returns   //[FBSDKDelegate ...] you can handle it
    -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:  (NSString *)sourceApplication annotation:(id)annotation {
    
        [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
    
        // 放到后面..
        [VKSdk processOpenURL:url fromApplication:sourceApplication];
    
         return YES;
    }
    //注: VKShareDialogControllerResult 分享狀態(tài)只有:取消 \ 完成 (無分享成功失\敗)
    


  • Telegram

    • 白名單
    <string>tg</string>
    
    • 系統(tǒng)分享: activityType = ph.telegra.Telegraph.Share
      • 分享支持url 圖片 title
    • SDK分享: (無)
    • 打開app深度鏈接分享[openURL]: (tg://) [內(nèi)容需utf-8, 支持很好]
    • 網(wǎng)頁內(nèi)分享

  • Pinterest

    • 系統(tǒng)分享: activityType = pinterest.ShareExtension
      • 分享支持url 圖片 title
    • SDK分享: (無)
    • 打開app深度鏈接分享[openURL]: (pinterest://) -- 暫只能打開app
      • pinterest://
    • 網(wǎng)頁內(nèi)分享 (text不需要utf8編碼, 否則框內(nèi)文字會(huì)顯示編碼后文字)

  • Instagram

    • 白名單
    <string>instagram-stories</string>
    <string>instagram</string>
    <string>instagram-capture</string>
    
    • 系統(tǒng)分享: activityType = com.burbn.instagram.shareextension

      • 圖片
    • SDK分享: (無)

    • 打開app深度鏈接分享[openURL]: (instagram://) 暫只能打開app https://www.instagram.com/developer/mobile-sharing/iphone-hooks/

      
      NSURL *urlScheme = [NSURL URLWithString:@"instagram-stories://share"];
      if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) {
      // Assign background image asset and attribution link URL to pasteboard
      NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:self.shareImageUrl]];
      NSArray *pasteboardItems = @[@{@"com.instagram.sharedSticker.backgroundImage" : data, @"com.instagram.sharedSticker.contentURL" : self.shareURL}]; NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]};
      // This call is iOS 10+, can use 'setItems' depending on what versions you support
      
      [[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions];
      [[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:^(BOOL success) {
          if (success) {
              [self leaveCurrentAPPToThirdApp];
          }
      }];
      }   
      
      • 方式二(間接分享 - 再彈出系統(tǒng)分享選擇): 分享igo文件的形式,彈起類似系統(tǒng)更多分享彈窗,拷貝到Instagram [速賣通 ins分享方式]
      
       NSString *documentDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
          // *.igo is exclusive to instagram
          NSString *saveImagePath = [documentDirectory stringByAppendingPathComponent:@"Image.igo"];
      //        NSData *imageData = UIImagePNGRepresentation(filteredImage);
          [data writeToFile:saveImagePath atomically:YES];
      
          NSURL *imageURL=[NSURL fileURLWithPath:saveImagePath];
      
          _docController=[[UIDocumentInteractionController alloc]init];
          _docController.delegate=self;
          _docController.UTI=@"com.instagram.photo";
          [_docController setURL:imageURL];
          _docController.annotation=[NSDictionary dictionaryWithObjectsAndKeys:@"#yourHashTagGoesHere",@"InstagramCaption", nil];
          [_docController presentOpenInMenuFromRect:CGRectZero inView:[UIViewController bgl_currentViewController].view animated:YES];  
      
      • 方式三(間接分享 - 再彈出系統(tǒng)分享選擇): ps: 只能純分享UIImage , Text或者URL不能分享, 分享則沒有Ins這個(gè)Ativity
    • 網(wǎng)頁內(nèi)分享 (無)

.
.
.
.
.
.

沒裝三方客戶端不能實(shí)現(xiàn)分享(無網(wǎng)頁分享 ): Instagram[無] / Line [重定向跳轉(zhuǎn)空白頁] / WhatsApp[重定向引導(dǎo)] / Messenger[無] / Telegram [跳轉(zhuǎn)引導(dǎo)]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怒详,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子踪区,更是在濱河造成了極大的恐慌昆烁,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缎岗,死亡現(xiàn)場離奇詭異静尼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)传泊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門鼠渺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人眷细,你說我怎么就攤上這事拦盹。” “怎么了溪椎?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵普舆,是天一觀的道長恬口。 經(jīng)常有香客問我,道長沼侣,這世上最難降的妖魔是什么祖能? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮蛾洛,結(jié)果婚禮上养铸,老公的妹妹穿的比我還像新娘。我一直安慰自己轧膘,他們只是感情好钞螟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谎碍,像睡著了一般鳞滨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上椿浓,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天太援,我揣著相機(jī)與錄音,去河邊找鬼扳碍。 笑死提岔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笋敞。 我是一名探鬼主播碱蒙,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夯巷!你這毒婦竟也來了赛惩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤趁餐,失蹤者是張志新(化名)和其女友劉穎喷兼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體后雷,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡季惯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臀突。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勉抓。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖候学,靈堂內(nèi)的尸體忽然破棺而出藕筋,到底是詐尸還是另有隱情,我是刑警寧澤梳码,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布隐圾,位于F島的核電站伍掀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翎承。R本人自食惡果不足惜硕盹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一符匾、第九天 我趴在偏房一處隱蔽的房頂上張望叨咖。 院中可真熱鬧,春花似錦啊胶、人聲如沸甸各。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趣倾。三九已至,卻和暖如春某饰,著一層夾襖步出監(jiān)牢的瞬間儒恋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工黔漂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诫尽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓炬守,卻偏偏與公主長得像牧嫉,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子减途,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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

  • 友盟分享文檔傳送門:https://developer.umeng.com/docs/66632/detail/6...
    JMong閱讀 8,867評(píng)論 0 2
  • 自用收藏 原文:http://www.th7.cn/Program/IOS/201606/884245.shtml...
    西瓜皮奧特曼閱讀 2,183評(píng)論 0 16
  • 1、不要評(píng)價(jià)別人的好壞税产,因?yàn)樗麄儾⒉挥绊懩愠燥垺?2怕轿、不要評(píng)價(jià)別人的德行,因?yàn)槟悴灰姷帽人呱小?3砖第、不要評(píng)價(jià)別...
    〣尐快楽閱讀 350評(píng)論 0 0
  • 《六項(xiàng)精進(jìn)》打卡第23天 姓名:趙穎 公司:無錫鎂鈦鉺金屬制品有限公司 組別:423期謙虛三組 【知~學(xué)習(xí)】 1:...
    趙穎_6911閱讀 110評(píng)論 0 0
  • 隨著代碼越寫越多撤卢。本地保存的git倉庫也越來越多,有些是私有項(xiàng)目梧兼,有些是公開項(xiàng)目放吩。其中也有很多是訪問不多,本地做備...
    Jerry2015閱讀 3,143評(píng)論 0 0