私のiPhoneアプリには、「Facebook」と「Twitter」というラベルの付いた2つのボタンがあります。共有を非常に簡単にするSharekitフレームワークを使用したいと思います。しかし、ShareKitのサンプルコードに示されているように、私は含めたくない多くの共有サービスしか表示できません。「Facebook」ボタンにFacebook共有サービスのみを表示したいのですが、Twitterでも同じです。ShareKitをそのように機能するように変更するにはどうすればよいですか?
3 に答える
更新:
この答えは今でも人気があるので、iOS5とiOS6でそれを追加したかったのですが、の必要性ははるかに少なくなっていSharekit
ます。現在、多くの一般的な共有オプションがOSに組み込まれています。そうは言っても、この答えは、デバイスに組み込まれていない共有サービス、または単に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で作成した投稿を見て、それをクリックすると、ストアに誘導されてダウンロードできるようになります。厄介なことに、これはオプションですが、この余分な1行で新しいダウンロードを取得してみませんか。
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に変更するだけです。さらにサポートが必要な場合は、コメントでお知らせください。
Sharekitは、一般的な共有メカニズムを提供しますが、個々のサービスも公開します。たとえば、TwitterでURLを共有する場合は、次のコードを記述できます。
#import "ShareKit/Core/SHK.h"
#import "ShareKit/Sharers/Services/Twitter/SHKTwitter.h"
...
SHKItem *item = [SHKItem URL:url title:@"A title"];
[SHKTwitter shareItem:item];
これはすべてドキュメントで説明されていますが、個々のサービスのヘッダーファイルを調べることを恐れないでください。
私も自分のアプリの1つで同じ問題を抱えていて、sharekitにそれを強制しようとしました。
ShareKitは実際にはそのために作られたものではありませんが、幅広い共有オプションを提供することを目的としています。そのため、変更した後でも、あまりエレガントで効率的なソリューションではないことがわかりました。
確かに少し時間を節約できますが、見栄えの良いエレガントなソリューションが必要な場合は、TwitterとFacebookを自分で統合することをお勧めします。少し時間がかかりますが、動作を希望どおりに定義し、アプリに合わせてインターフェースにテーマを設定できます。