社交網絡程式設計api
社交網絡程式設計主要使用ios提供的social架構,目前social架構主要包含兩個類:
slcomposeviewcontroller
提供撰寫社交資訊(如微網誌資訊)的視圖控制器,有ios系統提供ui,就是寫入要分享内容的小彈出框。
slrequest封裝了http請求,提供了同一的請求社交網絡服務的接口,能夠直接與社交網路服務通信的能力,沒有ui需要自己編寫設計.
除了social架構外,還有可能用到uiactivityviewcontrolelr和acaccount.uiactivityviewcontroller也是ios6的新的内容,它提供了一個分享清單視圖控制器。而acaccount是accounts架構中的一個類,acaccount對象封裝了存儲在賬戶資料庫中使用者賬戶資訊,使用slrequest通路社交網絡服務時,需要使用acaccount對象提供 使用者賬戶資訊。
ios6分享清單------uiactivityviewcontroller
在ios6之後提供了一個分享清單視圖,它通過uiactivityviewcontroller管理。蘋果設計它的主要目的是替換分享動作選單(actionsheet),分享動作選單是出于分享目的的動作選單。
内置活動清單項
内置了9個活動清單項目,他們是下面的9個常量定義的:
uiactivitytypeposttofacebook,facebook活動清單項;
uiactivitytypeposttotwitter,twitter活動清單項;
uiactivitytypeposttoweibo,新浪微網誌活動清單項;
uiactivitytypemessage,ios中的imessage應用活動那個清單項;
uiactivitytypemail,發送mail活動清單項;
uiactivitytypeprint,共享列印活動清單項;
uiactivitytypecopytopasteboard,複制到剪切闆活動清單項;
uiactivitytypeassigntocontact,通路聯系人活動清單項;
uiactivitytypesavetocameraroll,通路裝置上的相冊活動清單項;
自定義活動清單項
有時候根據共享内容不同,需要自定義活動清單項。例如一個視訊,需要共享到優酷。下面介紹自定義活動清單項。
凡是繼承uiactivity抽象類的子類對象都可以放到清單中呈現出來。這包括了系統内置的9個活動清單,也可是是我們自定義的清單項。uiactivity抽象類中需要子類實作的方法如下:
-(nsstring *)activitytype,為自定義活動清單項指定一個服務類型辨別
-(nsstring *)activitytitle,指定在清單中出現的名稱
-(uiimage *)activityimage,指定在清單中顯示的圖示
-(bool)canperformwithactivityitems:(nsarray *)activityitems,指定活動清單中的某些資料項目,是否可以執行,傳回yes可以執行,傳回no,不可以執行。
-(void)preparewithactivityitems:(nsarray *)activityitems,預處理要執行的活動清單中的資料項目;
-(uiviewcontroller *)activityviewcontroller,執行活動清單,如果傳回非nil,會彈出模态視圖,在結束時調用activitydidfinish;
-(void)performactivity,執行活動清單,如果activityviewcontroller方法沒有提供視圖,就會調用這個方法,在結束時調用activitydidfinish;
-(void)activitydidfinish:(bool)completed,當執行完成的時候必須調用哪個這個方法;
自定義視圖的用到的圖檔的大小
book.png 普通iphone裝置,分辨率不小于43*43
book~ipad.png,普通ipad裝置,分辨率不小于55*55
book@2x~ipad.png,視網膜顯示屏ipad裝置,分辨率不小于110*110
代碼展示:
//自定義活動清單
bookactivity.h
bookactivity.m
撰寫視圖控制器---slcomposeviewcontroller
它的呈現在iphone采用模态視圖,ipad則需要popover視圖呈現
如果發送微網誌資訊并不像彈出分享清單,再去選擇,而是在應用中直接進入寫評論的地方(ios系統提供的ui畫面)。slcomposeviewcontroller類可以幫助我們實作這個目的,slcomposeviewcontrolelr不僅可以撰寫weibo,還可以撰寫tweet和facebook.
發送這樣的社交網絡資訊一般會包含3中資訊---初始文本、圖檔和超連結,是以slcomposeviewcontroller類設計3個相對方法:
-(bool)setinitialtext:(nsstring *)text,設定初始文本内容
-(bool)addimage:(uiimage *)iamge,添加圖檔
-(bool)addurl:(nsurl *)url,添加超連結資訊
代碼展示