2011-03-25 90 views
21

在我的iPhone應用程序中,我有兩個兩個按鈕,標記爲「Facebook」和「Twitter」。 我想使用Sharekit框架,這使我的共享非常簡單。但正如ShareKit的示例代碼所示,我只能顯示許多共享服務,我不想包括這些服務。我希望我的「Facebook」按鈕僅顯示Facebook共享服務,並且與Twitter相同。我怎樣才能修改ShareKit的工作?iPhone/iOS - 如何使用「ShareKit」僅發佈到Facebook或僅發佈到Twitter

回答

31

更新

因爲這個答案仍然是受歡迎的,我只是想補充一點,與iOS 5 & iOS 6中,對於Sharekit更需要。操作系統中內置了許多流行的共享選項。這就是說,這個答案仍然適用於沒有內置到設備中的共享服務,或者如果你更喜歡使用Sharekit。


我會告訴你如何做到這一點對於Facebook,Twitter是完全一樣的,只是改變的Facebook的所有實例給Twitter

首先,#import "SHKFacebook.h" 然後在按鈕的目標方法,把以下內容:

SHKItem *item; //This creates the Sharekit Item 
NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/us/app/...?mt=8"]; 

NSURL應該是你的應用程序的鏈接的應用程序商店。這樣,如果有人看到你的應用在Facebook上發佈的帖子,並且他們點擊它,他們將被引導到商店,以便他們可以下載它。嚴格來說,這是可選的,但爲什麼你不試圖通過這一額外的一行獲得新的下載。

現在,我們需要建立SHKItem如下:

item = [SHKItem URL:url title:[NSString stringWithFormat:@"I'm playing someGame on my iPhone! My Highscore is %i, think you can beat it?", highScoreInt]]; 

然後設置後是這樣的:

item = [SHKItem URL:url title:@"Share Me!"]; 

標題參數是用戶定製的。無論你在這裏設置的用戶將無法更改。除了你放置的任何東西之外,他們還有機會添加他們自己的文本。

最後顯示的項目:

[SHKFacebook shareItem:item]; 

我希望這有助於。正如我所說的,只需將這篇文章中的Facebook改爲Twitter即可。如果您需要更多幫助,請在評論中告訴我。

+0

這很好,除非:Facebook的彈出窗口不是全屏。後面的觀點仍然可以通過(通過點擊Facebook外部彈出邊框)進行交互,這不是用戶期望的(而不是我們想要的)。我是否錯過了強制ShareKit覆蓋現有視圖的技巧,直到共享請求完成? – 2011-04-22 02:28:13

+0

您的背景視圖仍處於活動狀態的權利。在我的應用程序中,我總是讓它保持活動狀態,但現在你提到了它,你禁用觸摸的方式就在'[SHKFacebook shareItem:item];'後面,放這行:'self.view.userInteractionEnabled = NO;'問題在於用戶完成後必須重新啓用共享。我還沒有弄清楚。我會和它一起玩,當我弄明白時,我會在上面更新我的答案。 – Andrew 2011-04-22 14:33:44

+0

謝謝。我們真正需要的是完成時的共享包回調。但是,sharekit體系結構不會使這個微不足道的增加。如果你找出一個好的解決方案。 – 2011-04-26 04:34:04

4

Sharekit提供了一個通用的共享機制,但也暴露了個別服務。舉例來說,如果你在Twitter上分享的網址,你可以寫下面的代碼:

#import "ShareKit/Core/SHK.h" 
#import "ShareKit/Sharers/Services/Twitter/SHKTwitter.h" 

... 

SHKItem *item = [SHKItem URL:url title:@"A title"]; 
[SHKTwitter shareItem:item]; 

這是all explained in the documentation,但不要害怕探索各個服務的頭文件。

0

我的應用程序中也有同樣的問題,並試圖強制sharekit來做到這一點。 012KD不知道是不是真的爲它做了,它的意思是提供大量的共享選項 - 所以即使在修改之後,我發現它並不是一個非常優雅或有效的解決方案。

它會節省一些時間,當然 - 但如果你想要一個漂亮,優雅的解決方案,我建議你自己整合twitter和facebook。這需要一點時間,但您可以根據自己的需要來定義行爲,並將界面主題更好地融入到您的應用中。