閱讀275 返回首頁    go 阿裏雲 go 技術社區[雲棲]


利用iOS API編寫簡單微博客戶端全過程

要編寫社交網絡客戶端程序,可以大體上分為4個主要的步驟

5

下麵我們按照這個流程,介紹一下:

1、引入Accounts和Social框架

工程中需要引入Accounts和Social框架,Accounts框架中有進行用戶賬戶認證所需類,Social框架中SLRequest類是我們所需要的。添加具體步驟是選擇工程中的TARGETS→WeiBo→Build Phases→Link Binary With Libraries,選擇右下角的“+”按鈕,打開框架和庫選擇對話框。

6

分別選擇Social.framework添加,再選擇Accounts.framework添加。

 

2、用戶賬戶認證

用戶賬戶認證使用ACAccount、ACAccountStore和ACAccountType類,ACAccount類是封裝用戶賬戶信息,這些信息存儲在賬戶數據庫中,ACAccountStore類用來管理賬戶數據庫,ACAccountType類描述了賬戶類型。

認證過程的模板代碼如下:

ACAccountStore *account = [[ACAccountStore alloc] init]; ①

ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:

ACAccountTypeIdentifierSinaWeibo]; ②

[account requestAccessToAccountsWithType:accountType options:nil

completion:^(BOOL granted, NSError *error) ③

{

if (granted == YES) ④

{

NSArray *arrayOfAccounts = [account

accountsWithAccountType:accountType]; ⑤

if ([arrayOfAccounts count] > 0) ⑥

{

<認證通過>

}

};

}];


3、發送請求

用戶認證通過就可以進行發送使用SLRequest對象發送請求,創建SLRequest對象可以使用類級構造方法requestForServiceType:requestMethod:URL:parameters:,下麵是代碼是創建SLRequest對象:

SLRequest *request = [SLRequest  requestForServiceType:SLServiceTypeSinaWeibo

requestMethod:SLRequestMethodGET

URL:requestURL

parameters:parameters];

上麵的代碼還隻是創建了SLRequest對象,我們還需要為請求對象設置賬戶信息,使用下麵的語句:

request.account = weiboAccount;

weiboAccount賬戶信息是我們從用戶賬戶信息數據庫中獲得的,設置給請求對象的account屬性,然後才能提交給社交網絡服務器進行認證。

具體開始請求是通過調用SLRequest 的performRequestWithHandler:方法實現的,代碼如下:

[request performRequestWithHandler:^(NSData *responseData,

NSHTTPURLResponse *urlResponse, NSError *error) {

<處理請求結果>

}];


 

4、處理請求結果

請求結束會調用代碼塊,我們在代碼塊中處理請求結果。基本工作是解析數據,以及UI的更新等操作。這3個社交網絡服務返回的都是JSON格式數據,其中代碼塊中的responseData參數可以使用NSJSONSerialization解析JSON對象:

id jsonObj = [NSJSONSerialization JSONObjectWithData:responseData

options:NSJSONReadingAllowFragments error:&err];


解析的jsonObj對象結構根據社交網絡服務的不同而不同,詳細參數情況請參考不同服務的開發者網站。

下麵我們通過一個實例介紹一下SLRequest的使用,在表視圖畫麵中,可以下拉刷新視圖,獲得最新的社交網絡服務信息。點擊畫麵導航欄的Action按鈕,會彈出撰寫信息的模態視圖(右圖所示),撰寫完成之後點擊“Save”按鈕發送信息,可以點擊“Cancel”按鈕取消發送。

7

出自《iOS網絡編程與雲端應用最佳實踐》作者:關東升 @tony_關東升

最後更新:2017-04-03 18:51:50

  上一篇:go hdu 1079 Calendar Game 博弈
  下一篇:go 使用虛擬信用卡進行國際支付