一鍵分享文字圖片到新浪微博,facebook,twitter 還有保存打印等 (使用 iOS6 自帶的 social.framework)


因為寫了一個把文字轉為圖片的長微博工具app,准備添加新功能,使其可以方便分享到新浪和twitter等社交網站,於是就看了下那些第三方庫。

首先就是ShareKit. ShareKit剛開始感覺不錯,但是因為是很久前寫的,用了很多deprecated的methods,而且不是ARC的。追求大而全,所以感覺很臃腫,而且原作者不再開發了,其他人寫的使用這個庫的demo我下載下來不知怎么都有錯,就算改了也是一堆warnings。

然后就是使用原廠的SDK,新浪要申請,手續繁瑣,而且要單獨去下載各家的SDK,很麻煩。

用apple自帶的social.framework方便簡單,但是必須要iOS6, 所以得放棄一部分未升級的用戶,估計很多開發者不願意。

不過不管怎樣,這里簡單介紹下如何通過其來分享內容。

( 通過這個demo可以直觀的理解social.framework的使用流程:https://github.com/russj/ios6ShareDemo.git )

首先到target,Build Phases->link binary with libraries,添加social.framework,然后在要使用這個framework的文件頭添加 #import <Social/Social.h>

  • 記得要到iphone或者simulator里的setting->相關app賬號(用戶名,密碼)設置好,不然找不到account,不能post。如果找不到新浪微博,把語言調到中文試試。如果沒有預先設置好賬號,social.framework在真機和simulator上表現會不同。比如沒有預先設置好facebook賬號,在真機上下面方法1中不會有facebook圖標顯示,但是在模擬器上會有圖標,如果點擊facebook的圖標,會跳出提示需要設置facebook賬號。其實就是在模擬器上,對於SLComposeViewControllerisAvailableForServiceType 所有service都是available的,但是在真機上必須的預先設置好才available
  • 注意facebook和twitter,weibo取消行為不同。要把twitter,weibo的 setCompletionHandler 放到 presentViewController:slComposerSheet 的前面。不然需要點擊兩次才能推出twitter和weibo的發送sheet。

     

Social.Framework里有兩種方法

  1. 第一種 UIActivityViewController。這個是最簡單的。

- (IBAction)shareByActivity:(id)sender {

    NSArray *activityItems;

    if (self.sharingImage != nil) {

        activityItems = @[self.sharingText, self.sharingImage]

    } else {

        activityItems = @[self.sharingText];

    }

     UIActivityViewController *activityController =

    [[UIActivityViewControlleralloc] initWithActivityItems:activityItems  applicationActivities:nil];

    [self presentViewController:activityController  animated:YES completion:nil];

}

Yes, that's all. self.sharingText 和sharingImage就是要post的文字和圖片了。效果見下面截圖。短短幾行代碼你就得到8種分享途徑。夠簡單了把。

UIActivityViewController 使用截圖

  2. 使用SLComposeViewController來分享到新浪微博。這個就相當於上面1里介紹的單個分享service。目前只有三種。新浪微博,facebook,twitter。微博力量大啊,估計以后還得加微信。

代碼還是下載看吧,這里貼代碼不好排版,好像也不能像其他論壇那樣插入code。

總結:

  這個估計是最簡單的實現社交分享功能的方法了。不足之處就是覆蓋不夠廣泛,還有必須使用iOS6. 但是估計隨着時間的推移,apple會豐富完善這個social.framework, 畢竟SNS是當下還有未來最火的熱點之一。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM