Social Framework 是在 iOS 6.0 SDK 中才加入的 Framework,它整合了目前常見的社群網站 API(Facebook、Twitter、SinaWeibo 等),並提供統一的介面與使用方法,在使用上非常的便利,而原先的 Twitter Framework 在 iOS 6.0 SDK 中也不再使用。
Social Framework 分成兩大部分,SLRequest 與 SLComposeViewController,在 SLRequest 中封裝了許許多多的 HTTP Request 屬性,你可以利用它們來改寫,製作出屬於自己的使用者介面,相對的,SLComposeViewController 則是已經寫好的樣板(UIViewController),直接套用即可。
ps:關於更多 Social Framework 的相關資訊,請參考官方網站的 Social Framework Reference。
載入 Framework 與對應標頭檔
既然是使用 Social Framework,就別忘了把相關的 Framework 與對應的標頭檔連結加到專案中,對於新增 Framework 有問題的讀者們,請參考 Xcode 4 新增 Framework 的方法一文。
#import <Social/Social.h>
替專案增加 Social.framework |
取用 SLComposeViewController 的樣板介面
在這部份,我們以 Twitter 為例子,你會發現我們使用 SLServiceTypeTwitter 字串來當做變數,告訴 SLComposeViewController 我們所要建立的 SLComposeViewController 為 Twitter 樣板,你也可以使用 SLServiceTypeFacebook 或是 SLServiceTypeSinaWeibo 等字串當做變數,來分別代表 Facebook 與 SinaWeibo。
//判斷社群網站的服務是否可用
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
//建立對應社群網站的ComposeViewController
SLComposeViewController *mySocialComposeView = [[SLComposeViewController alloc]init];
mySocialComposeView = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
//插入文字
[mySocialComposeView setInitialText:@"Furnace iOS 程式設計 \n 中文學習網站"];
//插入網址
NSURL *myURL = [[NSURL alloc] initWithString:@"http://furnacedigital.blogspot.tw/"];
[mySocialComposeView addURL: myURL];
//插入圖片
UIImage *myImage = [UIImage imageNamed:@"icon144.png"];
[mySocialComposeView addImage:myImage];
//呼叫建立的SocialComposeView
[self presentViewController:mySocialComposeView animated:YES completion:^{
NSLog(@"成功呼叫 SocialComposeView ");
}];
}
訊息成功送出與否的之後處理
在 SLComposeViewController 中還有一個方法函式 setCompletionHandler:,它可以指定訊息發佈成功與否的後續處理動作,你可以將以下程式碼撰寫在上述程式碼「呼叫建立的SocialComposeView」的片段之後。
//訊息成功送出與否的之後處理
[mySocialComposeView setCompletionHandler:^(SLComposeViewControllerResult result){
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"取消送出");
break;
case SLComposeViewControllerResultDone:
NSLog(@"完成送出");
break;
default:
NSLog(@"其他例外");
break;
}
}];
在 Twitter 上的結果(包含內文、網址與圖片) |
請問要如何引用阿??
回覆刪除您好:
刪除請問您要引用什麼東西?標頭檔?文章?
請問是要在手機上才能執行嗎?在iOS simulator 上沒辦法
回覆刪除您好:
刪除要ios6.0以上的版本喔,如果都不能run的話,就只能在實機上執行了。