2011-03-25 10 views
21

iPhone uygulamasında "Facebook" ve "Twitter" etiketli iki tane iki düğmem var. Paylaşımımı çok basit yapan Sharekit çerçevesini kullanmak istiyorum. Ancak, ShareKit örnek kodunda gösterildiği gibi, sadece dahil etmek istemediğim pek çok paylaşım hizmeti gösterebiliyorum. "Facebook" düğmesinin sadece Facebook paylaşım hizmetini ve Twitter ile aynı şeyi göstermesini istiyorum. ShareKit'i böyle çalışmak için nasıl değiştirebilirim?iPhone/iOS - Sadece Facebook'a veya sadece Twitter'a göndermek için "ShareKit" nasıl kullanılır?

cevap

31

Güncelleme:

Bu cevap hala popüler olduğundan

, sadece iOS 5 & iOS 6 ile eklemek istedim, Sharekit için çok daha az ihtiyaç vardır. Artık birçok popüler paylaşım seçeneği işletim sistemine dahil edilmiştir. Bu yanıt, cihazda yerleşik olmayan paylaşım servisleri için geçerli olup, ya da Sharekit ile daha rahat olmanız durumunda geçerlidir.


nasıl Facebook için bunu yapmak göstereceğiz, Heyecan sadece ardından düğmenin hedef yönteminde, koyun

İlk Twitter, #import "SHKFacebook.h" için Facebook'ta tüm örneklerini değiştirmek tamamen aynı aşağıdaki:

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

NSURL app store üzerinde uygulamanıza bir bağlantı olmalıdır. Bu şekilde birisi uygulamanızı Facebook'ta yaptığı bir gönderiyi görürse ve tıklarsa, indirebilmeleri için mağazaya yönlendirilir. Strickly konuşan, bu isteğe bağlı, ama neden bu ekstra bir satır ile yeni indirme almak denemedin.

Şimdi şöyle SHKItem kurmak gerekir:

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

Sonra böyle yazı kurmak:

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

başlık parametre DEĞİL kullanıcı özelleştirilebilir olduğunu. Burada ne ayarlamış olursanız olun, kullanıcı değiştiremez. Oraya koyduğunuz her şeye ek olarak kendi metinlerini ekleme fırsatına sahip olacaklar.

[SHKFacebook shareItem:item]; 

umarım bu yardımcı olur:

Son olarak maddesini gösterir. Dediğim gibi, bu yazıdaki Facebook'ları Twitter'a değiştir. Daha fazla yardıma ihtiyacınız varsa bir yorumda bana bildirin.

+0

Bu, aşağıdakiler dışında harika çalışır: Facebook açılır penceresi tam ekran değildir. Arkadaki görüşler, kullanıcıların bekleyeceği şey değil (ve ne istediğimizi değil) ile etkileşime girebilir (Facebook pop-up sınırının dışına vurarak). Paylaşım isteği tamamlanana kadar ShareKit'i mevcut görünümleri kapsamaya zorlamak için bir hile özledim mi? –

+0

Bu arka plan görünümünün hala aktif olması. Uygulamamda her zaman aktif olarak bıraktım, ama şimdi bahsettiğinize göre, dokunmayı devre dışı bırakma şekliniz hemen sonra [SHKFacebook shareItem: item]; ', bu satırı koyun:' self.view.userInteractionEnabled = NO; Bununla ilgili sorun, kullanıcı bittikten sonra paylaşımı yeniden etkinleştirmeniz gerekiyor. Bunu daha önce anlamadım. Onunla oynayacağım ve anladığımda yukarıdaki cevabımı güncelleyeceğim. – Andrew

+0

Teşekkürler. Tek ihtiyacımız olan şey, işin bittiği zaman için keskin bir geri çağırma. Ancak, keskin bir mimari, bu önemsizliği eklemez. Harika olacak bir çözüm bulursan. –

4

Sharekit, genel bir paylaşım mekanizması sağlar, ancak ayrıca bireysel hizmetleri de sunar. Eğer heyecan bir URL paylaşmak olsaydı Örneğin, aşağıdaki kodu yazabilirsiniz:

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

... 

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

Bu all explained in the documentation, ancak bireysel hizmetlerin başlık dosyalarını keşfetmek korkmayın.

0

Ayrıca uygulamalardan birinde aynı sorunu yaşadım ve yalnızca bunu yapmak için sharekit'i zorlamaya çalıştım.

ShareKit bunun için yapılmış değildir, bununla birlikte geniş bir paylaşım seçeneği yelpazesi sunmak anlamına gelmekteydi - bu yüzden değişiklikten sonra bile çok zarif veya verimli bir çözüm olmadığını gördüm.

Bu biraz zaman kazandıracak, emin - ama iyi görünümlü, şık bir çözüm istiyorsanız, twitter ve facebook'u kendiniz eklemenizi öneririm. Biraz zaman alır, ancak davranışı tam olarak istediğiniz gibi tanımlayabilir ve arayüzün uygulamanıza daha uygun olmasını sağlayabilirsiniz.