iT邦幫忙

DAY 1
1

iOS 開發學習筆記系列 第 1

iOS 學習筆記,第1天: Social Framework

透過30天練習,學會30個應用,文章原文出處 http://blog.huijun.org/post/33227612245/1-social-framework
簡介:
今天要介紹的是 iOS 6 才出現的 Social Framework,Social Framework 提供讓你的 App 很輕鬆的就可以整合社群網站的功能,目前他提供了預設的 post message template 讓你很輕鬆的就可以發佈訊息出去,目前可以使用的服務有三個社群網站: Facebook、Twitter、新浪微博。

Social Framework主要由兩隻Class所構成
SLRequest Class Reference:
SLRequest 這隻 Class 封裝了 HTTP Request 的屬性,提供了很方便的 template 讓你可以發一個request.

SLComposeViewController:
SLComposeViewController 主要提供使用者去呈現發表訊息的那個 view.

Step 1:
建立一個 Single View Application 專案,我取名為 HelloSocial,勾選 Use Storyboards 跟 ACL

Step 2:
由於要使用Social Framework,所以我們先點到專案的 Build Phases -> Link Binary With Libraries -> 新增 Social Framework -> 再把他拖到 Framework 資料夾裡面,這樣你就可以使用 Social Framework的功能了

Step 3:
接著我們去 MainStoryboard.storyboard 新增一個 Round Rect Button到畫面上並且把它取名成 Post to Facebook

Step 4:
然後我們切換split view,然後按著ctrl 把 button拉到ViewController.m,新增一個Post的function

Step 5:
切換到ViewController.h,先import Social Framework然後宣告一個變數

#import <UIKit/UIKit.h>
#import <Social/Social.h>

@interface ViewController : UIViewController{
    SLComposeViewController *rexPost;
}
@end

Step 6:
打開 ViewController.m 修改 Post 的 function

//
//  ViewController.m
//  HelloSocial
//
//  Created by Rex Chen on 12/10/9.
//  Copyright (c) 2012年 Huijun.org. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)Post:(id)sender {
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
        rexPost = [[SLComposeViewController alloc] init];
        rexPost = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
        [rexPost setInitialText:@"iOS學習筆記,第1天: Social Framework"];
        [rexPost addURL: [[NSURL alloc] initWithString:@"http://blog.huijun.org/post/33227612245/1-social-framework"]];
        [self presentViewController:rexPost animated:YES completion:nil];
    }
    [rexPost setCompletionHandler: ^(SLComposeViewControllerResult result){
         NSString *output = [[NSString alloc] init];
         switch (result) {
             case SLComposeViewControllerResultCancelled:
                 output = @"取消送出";
                 break;
             case SLComposeViewControllerResultDone:
                 output = @"送出成功";
                 break;
             default:
                 break;
         }
         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
         [alert show];
    }];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

Step 7:
然後就已經寫好,我們來看一下結果。你必須先到設定去設定一下你的Facebook所要使用的賬號,然後就可以使用。

按下Post之後就可以成功發佈到你的Facebook上囉

花個十分鐘練習一下,馬上就可以整合三個社群網站囉!

Sample code放在 Github裡
https://github.com/rexchen/iOSamples/tree/master/HelloSocial


系列文
iOS 開發學習筆記1
0
ted99tw
iT邦高手 1 級 ‧ 2012-10-10 00:10:01

NSString *output = [[NSString alloc] init];

沙發

好令人懷念的指令啊,那是兩三年前的事兒啦......

0
huijun
iT邦新手 5 級 ‧ 2012-10-10 12:29:08

那請問大大,現在新的用法是?

0
ted99tw
iT邦高手 1 級 ‧ 2012-10-10 13:19:52

啊啊,對不起,我的意思是以前我曾用過這指令這系統,現在已不用xcode了,引起誤會,金係歹勢啊,我飛先......毆飛

我要留言

立即登入留言