7

私は ShareKit をあまり使用していませんが、Facebook、Twitter、および電子メールの 3 つの共有オプションだけを使用したいと考えています。ShareKit には、[その他] ボタンなど、はるかに多くのオプションがあります。ただし、[その他] オプションは必要ありません。3 つだけです。

ShareKitSHKActionSheet.mの場合:

// Add More button
[as addButtonWithTitle:SHKLocalizedString(@"More...")];

ここに画像の説明を入力

4

6 に答える 6

16

ShareKit 2.0を使えば、とても簡単です。

  1. SHKSharers.plist を編集して、必要な共有者のみを含めます。未使用の sharers ファイルをコンパイルしたくない場合は、granular installをチェックしてください。

  2. コンフィギュレーターで「さらに...」ボタンを非表示にできます。新しい設定は - (NSNumber*)showActionSheetMoreButton

  3. コンフィギュレーターでお気に入りの並べ替えを無効にすることができます。通常、最後に使用された共有者は、ShareKit のアクション シートの一番上にあります。新しい設定は - (NSNumber*)autoOrderFavoriteSharers です。

この方法を使用すると、ShareKit のコードを変更または追加する必要はありません。

于 2011-11-23T07:34:40.567 に答える
4

同じものが欲しかった。私はShareKitを機能させるために何日も費やしましたが、あまり成功しませんでした。FB、Twitter、メール メッセージを投稿することはできましたが、利便性よりも苦痛でした。

Sharekit は素晴らしいアイデアですが、

  • 画像、URL、テキストを同時に共有することはできません! テキストのみ、URL のみ、または画像のみである必要があります。おそらく、ユーザーに FB や Twitter に何かを投稿してもらいたい、またはアプリに関するメールを送信してもらいたいでしょう。メッセージに App Store や Web ページのリンクを含めることができない場合はどうすればよいでしょうか?
  • 多くの場合、StackoverFlow に質問を投稿する必要があります。
  • バグがあり、元のデザイナーによってサポートされていないため、多数のフォークがあります。ShareKitフォークを選択できますが、それでも.
  • そのウェブサイトでは、ドラッグアンドドロップのように聞こえますが、数分で機能させることができます。幸運を祈ります。

Twitter を追加するには 5 行、Facebook と電子メールを追加するには約 50 行で、テキスト、URL、写真を同時にサポートできます。

Twitter: このコードは、ユーザーが編集可能なテキスト、URL (非表示、編集不可)、および画像を含むメッセージを送信します。理解するのに5分かかりました。

#import  <Twitter/TWTweetComposeViewController.h>

- (IBAction)twitterButton:(id) sender {
   TWTweetComposeViewController *tweetView = [[TWTweetComposeViewController alloc] init];
   [tweetView setInitialText:@"Check out this app, it's awesome" ];
   [tweetView addImage:[UIImage imageNamed:@"MyImage.png"]];
   [tweetView addURL:[NSURL URLWithString:appDelegate.appStoreURL]]; 
   [self presentModalViewController:tweetView animated:YES];
}

Sharkit を作成した努力には本当に感謝していますが、個人的には、すべての共有者を本当にサポートする必要があり、限られた機能に満足している場合を除き、推奨できません。

更新: Facebook 共有を自分で実装しました。思ったより難しかったです。主な問題は、Facebook は画像リンクしか受け付けないため、投稿で写真をアップロードできないことです。さらに悪いことに、Facebook はユーザーのフォト アルバムにアップロードされた写真へのリンクを許可していません (非常に簡単です)。外部リンクでなければならないからです。静的な画像の場合は短縮 URL を使用して回避できますが、ユーザーが生成した画像の場合は、Amazon S3 などを使用する必要があります。Amazon S3 は非常に使いやすく、1 時間ほどでアップロード ファイルの使用方法を理解しました。

于 2012-03-01T09:01:18.403 に答える
3

[もっと...] ボタンが必要ない場合は、それを追加するコード行を削除してみませんか?

于 2011-06-16T12:28:46.747 に答える
1

このコードを SHKActionSheet.m から変更する必要があります

+ (SHKActionSheet *)actionSheetForType:(SHKShareType)type
// Add More button
//[as addButtonWithTitle:SHKLocalizedString(@"More...")];


- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

// More
//  else if (buttonIndex == sharers.count)
//  {
//      SHKShareMenu *shareMenu = [[SHKCustomShareMenu alloc]   
//          initWithStyle:UITableViewStyleGrouped];
//      shareMenu.item = item;
//      [[SHK currentHelper] showViewController:shareMenu];
//      [shareMenu release];
//  }

また、好きなサービスの SHKSharers.plist を編集できます。

于 2011-10-28T09:49:29.353 に答える
0

以下の定義を使用できますdismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

以下の定義でコメントされている数行を削除する必要があります。

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
{
    // Sharers
    if (buttonIndex >= 0 && buttonIndex < sharers.count)
    {
        [NSClassFromString([sharers objectAtIndex:buttonIndex]) performSelector:@selector(shareItem:) withObject:item];
    }

    // More
    //else if (buttonIndex == sharers.count)
//  {
//      SHKShareMenu *shareMenu = [[SHKCustomShareMenu alloc] initWithStyle:UITableViewStyleGrouped];
//      shareMenu.item = item;
//      [[SHK currentHelper] showViewController:shareMenu];
//      [shareMenu release];
//  }

    [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
}
于 2011-10-19T19:27:32.757 に答える
0

優れたソリューションですが、たとえば私の場合、Facebook も使用したいのですが、iOS5 でネイティブにコンテンツを共有する方法はありません。もう1つの問題は、この方法は5.0からしか機能しないため、iOS4.0以降(私の場合)に対応したアプリが必要な人ができないことです.

これを解決するには?ShareKit は Facebook や Twitter をネイティブ メソッドに使用し、iOS4.0 との互換性を忘れていませんか?

于 2012-03-04T14:54:21.140 に答える