2013年8月30日 星期五

在iOS6 使用facebook分享文章的功能

緣起
記得早先在寫iOS app要在上面分享個東西到facebook上面, 
除了研讀facebook的api外, code也比較複雜一點.
現在iOS6的social framework已經有支援了,不拿來用用太可惜了.
當然要客製化, 讀取朋友列表等等還是得回頭k一下facebook的官方文件啦.


需求
這次只是很簡單的想要在 "個人的動態消息" 上分享訊息
訊息包含了"文字描述", "URL link", "圖片"
分析一下發現官方提供的東西已經很夠用了.
於是讓我們來看看要怎麼實作吧~


實作
SDK最低需求:iOS6
xcode版本: 4.5或更新(筆者使用4.6.3)

1. project > targets > Build Phases 
添加Social.framework

2. 在viewController.m 底下
#import

3. 在自己建立好的button event裡面
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
       
        SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
       
        [controller setInitialText:@"分享文章的內容"];
        [controller addURL:[NSURL URLWithString:@"分享文章的url link"]];
        [controller addImage:[UIImage imageNamed:@"圖片的來源"]];
       
        [self presentViewController:controller animated:YES completion:Nil];
}

其中如果使用了非同步的圖片下載, 那或許可以參考筆者的作法 (ex: SDWebImage)
UIImageView *postimg = [UIImageView new];
[postimg setImageWithURL:[NSURL URLWithString:@"url link"]
                placeholderImage:[UIImage imageNamed:@"placeholder.png"]
                       completed:^(UIImage *image, NSError *err, SDImageCacheType typ) {
                          /* 等待圖片載完後才addImage */
                           [controller addImage:postimg.image];
                       }];


這樣就完成了耶! 分享給需要的人.

下面的link還有twitter的範例, 相當清晰易懂!
參考資料:http://www.appcoda.com/ios-programming-101-integrate-twitter-and-facebook-sharing-in-ios-6/

沒有留言:

張貼留言

內容回應