天天看點

社交網絡程式設計API之iOS系統自帶分享

社交網絡程式設計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,添加超連結資訊

代碼展示